gpt4 book ai didi

Python:numpy.matrix.resize 移动元素

转载 作者:太空宇宙 更新时间:2023-11-04 08:49:42 25 4
gpt4 key购买 nike

我有一个 numpy 矩阵:

[[ 0.   0.2  0. ]
[ 0. 0. 0.2]
[ 0. 0. 0. ]]

当我调整它的大小时 matrix.resize(4, 4),为了有一个额外的行和列,它变成了:

[[ 0.   0.2  0.   0. ]
[ 0. 0.2 0. 0. ]
[ 0. 0. 0. 0. ]
[ 0. 0. 0. 0. ]]

第二行的元素向左移动一位。似乎所有元素都被移动了,并且 0. 被添加到底部。

我希望矩阵变成:

[[ 0.   0.2  0.   0. ]
[ 0. 0. 0.2 0. ]
[ 0. 0. 0. 0. ]
[ 0. 0. 0. 0. ]]

我该如何解决这个问题?

请注意,我正在对许多不同的矩阵执行此操作,其中包含许多不同的值。因此,我正在寻找适用于任何大小矩阵的简单解决方案,但添加的列和行应包含全 0。

谢谢!

最佳答案

你可以使用 np.pad填充数组:

import numpy as np

arr = np.array([[ 0., 0.2, 0. ],
[ 0., 0., 0.2],
[ 0., 0., 0. ]])
np.pad(arr, pad_width=([0,1], [0,1]), mode='constant')

产量

array([[ 0. ,  0.2,  0. ,  0. ],
[ 0. , 0. , 0.2, 0. ],
[ 0. , 0. , 0. , 0. ],
[ 0. , 0. , 0. , 0. ]])

pad_width=([0,1], [0,1]) 告诉 np.pad 添加

  • 顶部零行
  • 底部一行
  • 左边零列
  • 右侧一栏

mode='constant' 使用 0 作为默认常量填充值。有很多其他模式,例如 'reflect'、'linear_ramp'、'edge'、'constant'、'minimum'、“环绕”、“对称”、“中值”、“最大值”、“平均值”。

关于Python:numpy.matrix.resize 移动元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36653035/

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