首页 > 解决方案 > 如何使用另一个相同大小的数组索引 numpy 数组

问题描述

我有一个 numpy 数组a和另一个dex相同形状的 int 类型的数组。我想用来dex索引到a. 我怎么做?

a = np.arange(10).reshape(2,5)

array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])

dex = np.zeros((2,5)).astype(np.int)
dex[:,1] =1

array([[0, 1, 0, 0, 0],
       [0, 1, 0, 0, 0]])

我正在尝试这样的事情,但没有奏效, a[dex]=100 得到了print(a)

array([[100, 100, 100, 100, 100],
       [100, 100, 100, 100, 100]])

我实际上希望结果是print(a)

array([[0, 100, 2, 3, 4],
       [5, 100, 7, 8, 9]])

标签: arraysnumpy

解决方案


当您给出 a[dex] 时,您正在尝试引用所有项目。当您给a[dex==1]=100时,它会检查特定值并仅在满足条件时才dex分配值。100

a[dex==1]=100

会给你:

[[  0 100   2   3   4]
 [  5 100   7   8   9]]

推荐阅读