繁体   English   中英

numpy在二维数组上的操作

[英]numpy where operation on 2D array

我有一个大小为571x24的numpy数组'A',我试图在其中找到零索引,所以我这样做:

>>>A.shape
(571L, 24L)

import numpy as np
z1 = np.where(A==0)

z1是具有以下大小的元组:

>>> len(z1)
2
>>> len(z1[0])
29
>>> len(z1[1])
29

我希望创建一个与A大小相同的z1。如何实现?

编辑:我想创建布尔数组z1为A中零的存在​​,这样:

>>>z1.shape
    (571L, 24L)

您可以使用numpy在python中使用相等运算符进行检查。 例:

>>> A = np.array([[0,2,2,1],[2,0,0,3]])
>>> A == 0
array([[ True, False, False, False],
       [False,  True,  True, False]], dtype=bool)

np.where()还有其他功能,请参见说明文件 虽然,可以通过广播使用np.where()来实现。 请参阅文档。

>>> np.where(A == 0, True, False)
array([[ True, False, False, False],
       [False,  True,  True, False]], dtype=bool)

尝试这个:

import numpy as np
myarray = np.array([[0,3,4,5],[9,4,0,4],[1,2,3,4]])
ix = np.in1d(myarray.ravel(), 0).reshape(myarray.shape)

ix的输出:

array([[ True, False, False, False],
       [False, False,  True, False],
       [False, False, False, False]], dtype=bool)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM