我想在日报中使用numpy函数,因为我的数据非常大。你知道吗
假设我有一个numpy2d数组
A = array([[0, 1, 2],
[1, 2, 3],
[2, 3, 4],
[3, 4, 5],
[4, 5, 6],
[5, 6, 7],
[6, 7, 8],
[7, 8, 9]])
我想做这样的事
abs(array([0, 1, 2]) - array([[3, 4, 5], [4, 5, 6], ..., [7, 8, 9]])).sum()
abs(array([1, 2, 3]) - array([[4, 5, 6], [5, 6, 7], ..., [7, 8, 9]])).sum()
...
abs(array([3, 4, 5]) - array([[0, 1, 2], [6, 7, 8], [7, 8, 9]])).sum()
abs(array([4, 5, 6]) - array([[0, 1, 2], [1, 2, 3], [7, 8, 9]])).sum()
...
abs(array([7, 8, 9]) - array([[0, 1, 2], [1, 2, 3], ..., [4, 5, 6]])).sum()
我已经尝试过这个方法,但是不能跳过左边有元素,右边有元素的数组。你知道吗
for i in range(len(A)):
temp = np.roll(A, -i, axis=0)
print(abs(temp[0] - temp[3:]).sum())
这是预期的结果
results = [75, 54, ..., 30, 30, ...75]
对不起,我的英语解释不好,谢谢。你知道吗
如果您希望有一个只涉及NumPy功能的简单的单行程序解决方案,我建议:
结果如预期:
给你:
=^..^=
输出:
相关问题 更多 >
编程相关推荐