python - 在 Python 中的特定列中广播二维数组
问题描述
我有一个这样的数组:
A = np.array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20]])
我想要做的是在第一列和最后一列的每个值上加 1。我想通过使用这个和适当的向量来理解广播(避免循环),但我已经尝试过,但它不起作用。预期成绩:
A = np.array([[ 2, 2, 3, 4, 6],
[ 7, 7, 8, 9, 11],
[12, 12, 13, 14, 16],
[17, 17, 18, 19, 21]])
解决方案
您可以使用 numpyindexing
来执行此操作。尝试这个:
# 0 is the first and -1 is the last column
A[:,[0,-1]] = A[:,[0,-1]]+1
或者
A[:,(0,-1)] = A[:,(0,-1)]+1
或者
A[:,[0,-1]]+=1
或者
A[:,(0,-1)]+=1
两种情况下的输出:
array([[ 2, 2, 3, 4, 6],
[ 7, 7, 8, 9, 11],
[12, 12, 13, 14, 16],
[17, 17, 18, 19, 21]])
推荐阅读
- html - css:如何水平显示单选按钮列表?
- git - Git 参考目录
/.git/refs - codeigniter - codeigniter 将我的所有页面重定向到除主页之外的旧域
- maven - exec-maven-plugin 在 Windows 上不起作用
- go - 安排任务/消息以供以后处理/交付
- floating-point - 小数到浮点 - 舍入逻辑
- javascript - 强尼五号无法连接到 Arduino
- angular - Angular 6在找不到页面时删除最后一个浏览器历史记录条目
- reactjs - 当我使用reactjs单击输入字段时,在输入字段中选择了单选下拉值而不是占位符并显示/隐藏下拉列表
- javascript - jQuery遍历字符串数组中的字符并找到它的索引