gpt4 book ai didi

python - 使用 bool 索引复制或查看 numpy 子数组

转载 作者:太空狗 更新时间:2023-10-30 01:16:35 30 4
gpt4 key购买 nike

给定一个二维 numpy 数组,即;

import numpy as np

data = np.array([
[11,12,13],
[21,22,23],
[31,32,33],
[41,42,43],
])

我需要根据所需行和列的两个掩码向量创建一个新的子数组或就地修改所选元素;

rows = [False, False, True, True]
cols = [True, True, False]

这样

print subArray

# [[31 32]
# [41 42]]

最佳答案

首先,确保您的rowscols 实际上是 bool ndarrays,然后使用它们来索引您的数据

rows = np.array([False, False, True, True], dtype=bool)
cols = np.array([True, True, False], dtype=bool)
data[rows][:,cols]

解释如果您使用 bool 值的 list 而不是 ndarray,numpy 会将 False/True 转换为 0/1,并将其解释为您想要的行/列的索引。使用 bool ndarray 时,您实际上是在使用一些特定的 NumPy 机制。

关于python - 使用 bool 索引复制或查看 numpy 子数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12436983/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com