我有一个逻辑矩阵,如下:

ind = np.array([1,0,1])

和数据矩阵,如:

data = np.array([[1,2,3],
                 [4,5,6],
                 [7,8,9]])

我想做这样的事情(这就是在MATLAB中做这件事的方法):

data[ind,:] = 0

以便将逻辑值为1的所有行设置为特定值.

np.array([[0,0,0],
          [4,5,6],
          [0,0,0]])

我怎样才能在Python中做到这一点?

推荐答案

You can do the same in but you need a boolean array (this is called boolean indexing):

data[ind.astype(bool), :] = 0

# or
data[ind==1, :] = 0

一百零二

更新data:

array([[0, 0, 0],
       [4, 5, 6],
       [0, 0, 0]])

中级:

ind.astype(bool)
# array([ True, False,  True])

Python相关问答推荐

如何在where或过滤器方法中使用SQLAlchemy hybrid_Property?

X射线扫描显示Docker中的pip漏洞,尽管图像中未安装pip

如何从. text中进行pip安装跳过无法访问的库

避免循环的最佳方法

如何使用上下文管理器创建类的实例?

使用from_pandas将GeDataFrame转换为polars失败,ArrowType错误:未传递numpy. dype对象

从包含数字和单词的文件中读取和获取数据集

具有症状的分段函数:如何仅针对某些输入值定义函数?

根据网格和相机参数渲染深度

使用numpy提取数据块

Pandas实际上如何对基于自定义的索引(integer和非integer)执行索引

海运图:调整行和列标签

Excel图表-使用openpyxl更改水平轴与Y轴相交的位置(Python)

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

OR—Tools中CP—SAT求解器的IntVar设置值

python中字符串的条件替换

try 检索blob名称列表时出现错误填充错误""

如何在PySide/Qt QColumbnView中删除列

Maya Python脚本将纹理应用于所有对象,而不是选定对象

python—telegraph—bot send_voice发送空文件