2015-04-24 30 views
1

我有下面的代码:智能处理与许多指标

p1 = np.array([[[[[[[[[[0.]*2]*2]*2]*2]*2]*2]*2]*2]*2]*2) 
s = [0]*10 
# 
# Do something with s 
# 
p1[s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7],s[8],s[9]] += 1 

有一个聪明的方法:

  1. 没有所有这些括号创建P1和
  2. 用字符串或列表访问p1的组件?

我心目中是这样的:

p1[s] += 1 

或:

p1[*s] += 1 

例如,如果不是10个指数我想要什么N个索引?

回答

7
np.array([[[[[[[[[[0.]*2]*2]*2]*2]*2]*2]*2]*2]*2]*2) 

更好写成:

np.zeros((2,2,2,2,2,2,2,2,2,2)) 

还是因为有十个2 S:

np.zeros((2,)*10) 
+0

非常感谢!你还了解第二个问题吗? – geodude

+1

对于第二个问题,使用此解决方案或任何其他方法,只需使用'p1 [s]'。只要确保's'是正确的类型,例如这里的一个元组。 – nickie

+0

太好了,谢谢。 – geodude