【发布时间】:2023-03-14 16:45:01
【问题描述】:
考虑以下矩阵:
X = np.arange(9).reshape(3,3)
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
假设我想对以下数组进行子集化
array([[0, 4, 2],
[3, 7, 5]])
可以对行和列进行一些索引,例如
col=[0,1,2]
row = [[0,1],[1,2],[0,1]]
如果我将结果存储在一个变量数组中,我可以使用以下代码:
array=np.zeros([2,3],dtype='int64')
for i in range(3):
array[:,i]=X[row[i],col[i]]
有没有办法广播这种操作?我必须将其作为 5 Gb 大文件的数据清理阶段,我想使用 dask 来并行化它。但如果我第一次可以避免使用 for 循环,我会感觉很棒。
【问题讨论】:
标签: python numpy vectorization slice dask