Eva*_* Pu 3 python arrays numpy
我不确定要搜索什么关键字,因此如果已被询问,请链接响应并关闭此线程。
我试图按固定方向移动 numpy 数组的非零条目,例如,假设我有一个二维数组:
0 1 2 0
0 3 0 0
0 0 0 0
0 0 0 0
Run Code Online (Sandbox Code Playgroud)
将其移位 (1,1) 将产生以下数组:
0 0 0 0
0 0 1 2
0 0 3 0
0 0 0 0
Run Code Online (Sandbox Code Playgroud)
假设如果非零条目超出范围,它们就会被丢弃。我该怎么做?
编辑:显然有一些重复?在 numpy 数组中移动元素 我真的不明白为什么它们是同一个问题,因为有人谈论的是循环出界的东西,所以它更多的是一种“滚动”动作而不是移动。我也喜欢这里的解决方案,它非常简单且可读。
再次编辑:修复了一些格式
使用rollnumpy 中的方法。
>>> import numpy as np
>>> m
array([[0, 1, 2, 0],
[0, 3, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
>>> m = np.roll(m, 1, axis=0) # shift 1 place in horizontal axis
>>> m = np.roll(m, 1, axis=1) # shift 1 place in vertical axis
>>> m
array([[0, 0, 0, 0],
[0, 0, 1, 2],
[0, 0, 3, 0],
[0, 0, 0, 0]])
Run Code Online (Sandbox Code Playgroud)
https://docs.scipy.org/doc/numpy-1.13.0/reference/ generated/numpy.roll.html
| 归档时间: |
|
| 查看次数: |
14629 次 |
| 最近记录: |