python 相当于 MATLAB 语句 A(B==1)= C

标签 python numpy indexing

我有三个 numpy 数组,如下所示:

A = [1, 2, 3, 4, 5]
B = [0, 1, 0, 0, 1]
C = [30, 40]

我想替换 A 中的元素,它们在 B 中的等价元素等于 1。对于上面的示例,我想得到:

A = [1, 30, 3, 4, 40]

在 MATLAB 中,我可以这样做:

A(B==1) = C'

你知道 Python 中的等效代码吗(最好是当 A 和 B 也是多维时有效的代码)?提前致谢。

最佳答案

语法非常相似:

>>> import numpy as np
>>> A = np.array([1, 2, 3, 4, 5])
>>> B = np.array([0, 1, 0, 0, 1])
>>> C = np.array([30, 40])
>>> A[B==1] = C
>>> A
array([ 1, 30,  3,  4, 40])

关于python 相当于 MATLAB 语句 A(B==1)= C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24377095/

相关文章:

Python 搜索和替换无法正确替换

python - C++ 中的长数字

python - 为什么enthought mkl例程比matlab慢

python - Numpy 数组广播规则

python - numpy 3d 数组 -- 展平 --> 1d 数组 --> 选择 1d 中的一个元素 --> 如何知道该元素在 3d 中的索引?

java - 如何索引数组以从 1 而不是 0 开始?

python - 如何使用 global_step 计算调用 tf.cond 的谓词?

python - SQLAlchemy 在 MySQL 上将什么列类型用于 "Text"?

python - NumPy 的错误? ( python 3)

带有索引 View 的 SQL EAV 结构