numpy数组切片和掩码

t1rydlwq  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(95)

我遇到过一些我不完全理解的语法。这是:

array[:, mask] = a

字符串
array是一个numpy的索引数组,mask是一个numpy的布尔值数组,a是一个整数。
有人能帮我翻译一下这个符号吗?
我在网上找不到答案。

ru9i0ody

ru9i0ody1#

翻译:

  • 在数组array
  • 对于行[:](在本例中均为)
  • mask包含True的每一列执行
  • 操作:分配a

所以它将a写入所有矩阵单元,其中masks包含True值。
下面是一个例子:

import numpy as np

array = np.array([
    [1,5,3],
    [1,5,3],
    [1,5,3],
])
mask = np.array(
    [True,False,True]
)
array[:, mask] = 10
print(array)

字符串
结果:

[[10  5 10]
 [10  5 10]
 [10  5 10]]

rlcwz9us

rlcwz9us2#

有关切片的更详细答案,请参阅此How slicing in Python works。可以使用掩码而不是显式范围来选择特定索引。回到你的问题,它会选择所有的行,只选择掩码值为true的那些列,所以所有这些单元格都将被替换为整数a。

相关问题