【问题标题】:Multiple conditions inside np.where() [duplicate]np.where() 中的多个条件 [重复]
【发布时间】: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.x1myP.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
  • &amp; 运算符的优先级高于&gt;,所以需要使用括号。
  • @ipj 我正在操作的数据文件很大,所以我无法向您发送确切的数据。但我可以给你关于他们的信息。 x1 x2 和 x3 是 (1024*1536*64) 浮点数组。我想要满足 where() 语句中条件的数字索引
  • @RahulVishwakarma 是的,这解决了问题!谢谢!!!

标签: python python-3.x numpy multidimensional-array numpy-ndarray


【解决方案1】:

正如 @Rahul Vishwakarma 和 @PeterLeeh 在 cmets 中指出的,

my_index= np.where(((myP.x1)>-64.0) & ((myP.x1)10.0) & (myP.x2

上面的语句解决了我的问题。

【讨论】:

    猜你喜欢
    • 2022-06-13
    • 2020-04-02
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 2016-08-04
    • 2017-11-18
    • 2021-09-17
    • 2021-12-18
    相关资源
    最近更新 更多