Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我试图在多个范围内迭代,从另一个范围创建多维数据数组_Python_Arrays_Numpy_Multidimensional Array - Fatal编程技术网

Python 我试图在多个范围内迭代,从另一个范围创建多维数据数组

Python 我试图在多个范围内迭代,从另一个范围创建多维数据数组,python,arrays,numpy,multidimensional-array,Python,Arrays,Numpy,Multidimensional Array,我有: 如何获得一个数组,该数组是一个数与其下的数之和: >>> import numpy as np >>> a = np.arange(25).reshape(5, 5) >>> a array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 2

我有:

如何获得一个数组,该数组是一个数与其下的数之和:

>>> import numpy as np
>>> a = np.arange(25).reshape(5, 5)
>>> a
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24]])
我想通过迭代原始数组来实现这一点。比如:

array([[7,  9,  11,],   # 1+6=7 , 2+7=9 , 3+8=11
       [17, 19, 21,],
       [27, 29, 31,]])
尽管出于语法原因,这不起作用。有人能告诉我正确的语法吗?我不是一个专业的程序员,对Python还是新手。提前感谢。

使用切片选择(1)除最后一行之外的所有数组,以及(2)除第一行之外的所有数组。然后添加它们

b[x,y] = [a[x,y]+a[x+1,y] for x in range(0,3) for y in range(1,4)] #ERROR!

谢谢,这很有帮助-有没有迭代的方法?我正在玩更大的矩阵,希望有一个更普遍的解决方案。(例如,如果我想得到元素[x,y,z]并将其乘以元素[x+n,y,z])你真正想做的是什么?@user2974839你可以用这个答案来做,它比迭代更快。将
1
更改为
n
,并用更多
或单个
a[:-n,…]*a[n:,…]
(相当于:
a[:-n,:,:]*a[n:,:,:]
)@askewchan和相当于
a[:-n]*a[n:]
也一样。@VebjornLjosa我只是想通过玩东西来学习Python。除了自我教育,我不想完成一项特定的任务。
>>> a[:-1,:] + a[1:,:]
array([[ 5,  7,  9, 11, 13],
       [15, 17, 19, 21, 23],
       [25, 27, 29, 31, 33],
       [35, 37, 39, 41, 43]])