我有一个3D numpy数组data
和另一个索引数组pos
(索引本身就是一个numpy数组,这使得后一个数组成为2D数组):
import numpy as np
data = np.arange(8).reshape(2, 2, -1)
#array([[[0, 1],
# [2, 3]],
#
# [[4, 5],
# [6, 7]]])
pos = np.array([[1, 1, 0], [0, 1, 0], [1, 0, 0]])
#array([[1, 1, 0],
# [0, 1, 0],
# [1, 0, 0]])
我想使用pos
中的索引选择和/或改变data
中的元素。我可以使用for
循环或列表理解进行选择:
但这似乎不是一个裸体的方式。有没有一个向量化的numy解决方案来解决这个问题?在
您可以将
pos
拆分为3个单独的数组和索引,如下-这里,}的复杂程度永远不会超过这个。在
pos
中的列数对应于data
的深度。只要你在处理3D矩阵,得到i
,j
,和{在python-3.6+上,可以将其缩短为-
^{pr2}$相关问题 更多 >
编程相关推荐