我想設置numpy數組的值如下。但我不想用for-loop
。 有什麼好方法嗎?如何在2D numpy數組中設置多列而無需for-loop?
a = range(4)
a[0] = [11,12,13,14,15,16]
a[1] = [21,22,23,24,25,26]
a[2] = [31,32,33,34,35,36]
a[3] = [41,42,43,44,45,46]
a = np.array(a)
changeIndex = [0,2,4]
for i in range(4):
a[i][changeIndex] = 0
print a
#array([[ 0, 12, 0, 14, 0, 16],
# [ 0, 22, 0, 24, 0, 26],
# [ 0, 32, 0, 34, 0, 36],
# [ 0, 42, 0, 44, 0, 46]])
即使在這種情況下,使用'np.arange'的間隔比'range'小2倍。 – sebix 2014-09-06 08:24:54
使用'np.vstack((...))'或類似的方法總是比'np.array([...])'快(我現在測試的是9x) – sebix 2014-09-06 08:43:00