【发布时间】:2020-08-20 08:19:08
【问题描述】:
我有各种 3d 数组,我想获取满足某些条件的数组的索引。例如,为了获取索引,我做了
import numpy as np
my_index = np.where((myP.x1)>-64.0 & (myP.x1)<-30.0 & (myP.x2)>10.0 & myP.x2<30.0)
这里,myP.x1、myP.x2 等是 3D 数组。我想要上述条件为真的索引。我期望一个索引列表的输出,然后我将其提供给其他数组用于不同的目的。
但在运行此程序时,我收到一个相当神秘的错误提示
TypeError: 输入类型不支持 ufunc 'bitwise_and',并且根据转换规则 ''safe'' 无法安全地将输入强制转换为任何支持的类型。
我不知道那是为了什么。我只想获取条件为真的索引列表....任何帮助将不胜感激。
TLDR:想要使用 np.where() 从满足多个条件的数组中获取索引。
【问题讨论】:
-
请提供可重现的示例,关于各种 3d 数组的信息还不够。
-
试试这个:my_index= np.where(((myP.x1)>-64.0) & ((myP.x1)10.0) & (myP.x2
-
&运算符的优先级高于>,所以需要使用括号。 -
@ipj 我正在操作的数据文件很大,所以我无法向您发送确切的数据。但我可以给你关于他们的信息。 x1 x2 和 x3 是 (1024*1536*64) 浮点数组。我想要满足 where() 语句中条件的数字索引
-
@RahulVishwakarma 是的,这解决了问题!谢谢!!!
标签: python python-3.x numpy multidimensional-array numpy-ndarray