python - Numpy 矩阵模索引提取
问题描述
假设我有一个二维矩阵 A,比如说
A = np.mat([[1,2,3,4],
[5,6,7,8],
[9,10,11,12]])
如何将第 1 行中列索引模 2 的所有元素更改为 0?即,我想获得
np.mat([[1,2,3,4],
[0,6,0,8],
[9,10,11,12]])
我努力了
A[1][np.arange(len(A))%2==0] = 0
这会导致 IndexError。
解决方案
Columnindex % 2 = 0
表示索引是偶数。您可以将偶数列索引处的第一行的元素更改为 0,如下所示:
A[1, ::2] = 0 # 2 is the step
如果您想将其作为您的 (incorrect) A[1][np.arange(len(A))%2==0] = 0
,则应将其更改为
A[1, np.arange(A.shape[1]) % 2 == 0] = 0
whereA.shape[1]
是列数(而len(A)
为您提供行数)。
推荐阅读
- python - 如何从 python 本身在 python 解释器中运行命令?
- python - 如何比较两个数据框以显示差异?
- javascript - 在 React 打字稿的 useState 挂钩中使用 PrevState
- spring-data-mongodb - 具有相似条件的 MongoDb 查询给出错误
- git - 有人在签入 git ( git status ) 时遇到问题并出现这样的错误吗?
- r - 使用 if 或 ifelse
- javascript - vue 的下一页和上一页功能
- vue.js - 为 vue 中的复选框设置玩笑测试
- c# - SqliteCommand.ExecuteScalar() 返回 null(C# 5.0 和 System.Data.Sqlite)
- c++ - 在线程中退出时如何正确调用析构函数?