python - 多个逻辑索引选择numpy数组
问题描述
好吧,如果我们想选择某些值保持不变,并在一个 numpy 数组中将其他值设置为零,我们可以
A = A == 1
如果 A 只有 4 个唯一数字 0,1,2,3。
但是,如果我想选择 N 个不同的值,例如
A = np.where(A==1 or A==2, A)
但这不起作用,并且条件不一定仅适用于 2 个值。我该如何实现这个想法?
解决方案
使用多个条件时请注意,请使用bitwise OR
运算符 ( |
) 并将每个条件括在括号中:
A = np.where((A == 1) | (A == 2), A, 0)
对于此任务,您可以使用numpy.isin
:
A = np.where(numpy.isin(A, [1, 2]), A, 0)
推荐阅读
- c++ - 为什么赋值表达式中的重叠必须是精确的并且对象必须具有相同的类型,这是什么意思?
- python - 为什么这个 for 循环在每个循环上附加相同的值?
- ios - 删除了 Xcode 中的通知扩展,现在应用程序将无法构建
- javascript - 将 Excel.Application COMObject 与 Javascript 和 Spidermonkey 一起使用的问题(在 Sparx EA 中)
- postman - Postman 可视化 - 如何在简单的 HTML img 标签中呈现图像 URL
- javascript - How to read only a single line from command line in Node.js, similar to Python's `input` or C++'s `std::getline`?
- tcl - 如何在 Tcl 中组合位域以生成单个 64 位值?
- angular - o.Subject 不是构造函数 - Angular 10
- identityserver4 - Identity Server 4 Access Token Lifetime 将在其生命周期之后到期
- firebase - 如何获取 FireBase 的 TOKEN 或 API_KEY?