python - 如何使用另一个 NumPy 数组的值过滤一个 NumPy 数组

标签 python arrays numpy

我有一个这样的 NumPy 数组:

type = array(["A", "B", "A", "B", "B", "A", "A"])

我想像这样使用这个数组来过滤另一个数组:

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

我希望能够按类型过滤数据,这样:

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

知道我应该如何实现它吗?由于第一个数组不是 bool 值,我很难找到解决方案

最佳答案

让我们定义你的数组:

>>> from numpy import array
>>> data = array(([5,4,5], [0,4,3], [2,1,6], [6,7,9], [0,1,4], [7,9,8], [1,4,9]))
>>> type_ = array(["A", "B", "A", "B", "B", "A", "A"])

现在,让我们找出您的类型 A:

>>> A = data[type_=="A"]
>>> A
array([[5, 4, 5],
       [2, 1, 6],
       [7, 9, 8],
       [1, 4, 9]])

还有你的类型B:

>>> B = data[type_=="B"]
>>> B
array([[0, 4, 3],
       [6, 7, 9],
       [0, 1, 4]])

这里,type_=="A"type_=="A" 是 bool 数组。我们使用它们从 data 中选择我们想要的元素。

有关使用 bool 或“掩码”数组进行索引的更多信息,请参阅 NumPy docs .

最后,type 是 python 内置的,最好不要覆盖它。因此,我们在这里使用了 type_

关于python - 如何使用另一个 NumPy 数组的值过滤一个 NumPy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49146201/

相关文章:

python - 最有效的进口方式

php - 使用php过滤掉数组中的重复值

python - 如何分割我的图像和标签,使其可以用作机器学习的特征?

python - 如何删除对称矩阵中的列和行

python - 使用 Python 3 读取 CSV 文件

python - 如何使用 Numpy/Scipy 编写一致的代码?

python - 你如何检查一个字符串在 python 中是否有多个特定字符。示例 字符串 'mood' 显然有两个 'o' 字符

c++ - 将 argv 转移到一个新数组中

javascript - 如何在 Angular js 中从数组中获取数据

python - AffinityPropagation 聚类的输入格式