【发布时间】:2018-02-17 20:26:40
【问题描述】:
j=np.arange(20,dtype=np.int)
site=np.ones((20,200),dtype=np.int)
sumkma=np.ones((100,20))
[sumkma[site[x],x] for x in range(20)]
这可行,但我不想使用 for 循环。当我尝试时
sumkma[site[j],j]
我收到此错误:
IndexError: shape mismatch: indexing arrays could not be broadcast together with shapes (20,200) (20,)
如何修复错误?
【问题讨论】:
-
NumPy 广播将维度从右到左对齐,而不是从左到右。
-
这个错误一般是在混合numpy的索引方法时出现的,类似情况见this answer
标签: python numpy indexing broadcast