irc*_*ham 1 python arrays numpy
我有一个二维数组,我希望i每一行中的数组元素i-1被同一行中的元素减少
我试过这个代码:
data = np.arange(12).reshape(3,4)
print(data)
for row in data:
for cell in row:
data[cell] = data[cell]-data[cell-1]
print(data)
Run Code Online (Sandbox Code Playgroud)
我得到了这样的输出
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
Traceback (most recent call last):
File "D:/testing/test.py", line 55, in <module>
data[cell] = data[cell]-data[cell-1]
IndexError: index -8 is out of bounds for axis 0 with size 3
Run Code Online (Sandbox Code Playgroud)
我想要这样的输出
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[1 1 1]
[1 1 1]
[1 1 1]]
Run Code Online (Sandbox Code Playgroud)
主要过程是data[i] = data[i]-data[i-1]。我需要这个过程来处理超过 1024x1024 的大量数据,所以我需要一些高效的东西
您可以对两个数组进行切片并减去:
data[:,1:] - data[:,:-1]
array([[1, 1, 1],
[1, 1, 1],
[1, 1, 1]])
Run Code Online (Sandbox Code Playgroud)
或采取np.diff:
np.diff(data)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |