gpt4 book ai didi

python - Numpy:计算矩阵的边

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:48 24 4
gpt4 key购买 nike

我有以下内容来计算矩阵的差异,即第 i 个元素 - 第 (i-1) 个元素。

我如何(轻松地)计算每个元素的水平和垂直差异?用转置?

inputarr = np.arange(12)
inputarr.shape = (3,4)
inputarr+=1

#shift one position
newarr = list()
for x in inputarr:
newarr.append(np.hstack((np.array([0]),x[:-1])))

z = np.array(newarr)
print inputarr
print 'first differences'
print inputarr-z

输出

[[ 1  2  3  4]
[ 5 6 7 8]
[ 9 10 11 12]]

first differences
[[1 1 1 1]
[5 1 1 1]
[9 1 1 1]]

最佳答案

查看 numpy.diff .

来自文档:

Calculate the n-th order discrete difference along given axis.

The first order difference is given by out[n] = a[n+1] - a[n] along the given axis, higher order differences are calculated by using diff recursively.

一个例子:

>>> import numpy as np
>>> a = np.arange(12).reshape((3,4))
>>> a
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>> np.diff(a,axis = 1) # row-wise
array([[1, 1, 1],
[1, 1, 1],
[1, 1, 1]])
>>> np.diff(a, axis = 0) # column-wise
array([[4, 4, 4, 4],
[4, 4, 4, 4]])

关于python - Numpy:计算矩阵的边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14004147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com