import numpy as np
a = np.array([0,0,0,0,0,0,0,0])
b = np.array([4,2,3])
c = np.array([5,5,2])
for i, e in enumerate(c):
a[e] += b[i]
print(a)
# [0 0 3 0 0 6 0 0]
a = np.array([0,0,0,0,0,0,0,0])
b = np.array([4,2,3])
c = np.array([5,5,2])
a[c] += b[np.arange(len(b))]
print(a)
# [0 0 3 0 0 2 0 0]
c的实际长度长得令人难以置信,问题就出在这里。
Python for循环太慢了。
所以我想用numpy来代替它,但是没有python for循环,但是我找不到方法。
我想这是因为内存引用的原因。有没有办法把this的结果值改为相同的?
1条答案
按热度按时间2hh7jdfx1#
你可以试试
np.add.at
:图纸: