python - Numpy 重复一行或一列

标签 python numpy

假设我们有矩阵 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.hstacknumpy.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/

相关文章:

python - py2app/Tkinter应用程序错误: "classic environment is no longer supported"

python - 根据某些列重新排列二维数组中的条目

python - 如何使用python中的函数生成2个字母的单词?

python - 如何读取python字节码?

python - 在内置函数或模块函数中可以创建点源 nxn 数组吗?

python - 尝试计算精确解时 numpy.linalg.solve 出错

python - 电场线

python - 你能在每次修改另一个字段时修改一个对象的字段吗?

python - 如何使用 python 连接到 Cosmos DB Emulator 表存储?

python - 我如何知道远程进程正在运行或已完成?