Python 在numpy中为循环对其进行矢量化
我想知道如何为循环将其矢量化。给定一个Python 在numpy中为循环对其进行矢量化,python,numpy,indexing,Python,Numpy,Indexing,我想知道如何为循环将其矢量化。给定一个2x2x2数组x和一个数组,其中每个元素都是我想要得到的x[I,j,k]数组的ith,jth和kth元素 给定数组x和y x = np.arange(8).reshape((2, 2, 2)) y = [[0, 1, 1], [1, 1, 0]] 我想得到: x[0,1,1]=3和x[1,1,0]=6 我试过: print(x[y]) 但它显示: array([[2, 3], [6, 7], [4, 5]]) 所以我最终做
2x2x2
数组x
和一个数组,其中每个元素都是我想要得到的x[I,j,k]数组的ith,jth和kth
元素
给定数组x
和y
x = np.arange(8).reshape((2, 2, 2))
y = [[0, 1, 1], [1, 1, 0]]
我想得到:
x[0,1,1]=3
和x[1,1,0]=6
我试过:
print(x[y])
但它显示:
array([[2, 3],
[6, 7],
[4, 5]])
所以我最终做了:
for y_ in y:
print(x[y_[0], y_[1], y_[2]])
这很有效,但我忍不住认为有更好的方法。使用转置的y
即zip(*y)
作为索引;您需要将每个维度的索引作为一个元素来使用:
x[tuple(zip(*y))]
# array([3, 6])