假设我们有矩阵 A:
A = [1,2,3
4,5,6
7,8,9]
我想知道有没有办法获得:
B = [1,2,3
4,5,6
7,8,9
7,8,9]
还有:
B = [1,2,3,3
4,5,6,6
7,8,9,9]
这是因为我要实现的功能如下:
U(i,j) = min(A(i+1,j)^2, A(i,j)^2)
V(i,j) = min(A(i,j+1)^2, A(i,j)^2)
numpy.minimum
似乎需要两个形状相同的数组。
我的想法是:
np.minimum(np.square(A[1:]), np.square(A[:]))
但它会失败。
最佳答案
对于您的特定示例,您可以使用 numpy.hstack
和 numpy.vstack
:
In [11]: np.vstack((A, A[-1]))
Out[11]:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[7, 8, 9]])
In [12]: np.hstack((A, A[:, [-1]]))
Out[12]:
array([[1, 2, 3, 3],
[4, 5, 6, 6],
[7, 8, 9, 9]])
最后一个的替代方法是 np.hstack((A, np.atleast_2d(A[:,-1]).T))
或 np.vstack((A.T , A.T[-1])).T
): 你不能hstack
一个(3,)
数组到一个(3,3 )
没有将元素放入 (3,1)
数组的行中。
关于python - Numpy 重复一行或一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30222512/