我正在尝试调整numpy数组的大小,但似乎调整大小的方法是先将数组展平,然后获取第一个X*Y元素并将它们放入新的形状中。我想做的是在坐标3,3处剪切数组,而不是重新排列它。当我试着把它放大到7,7。。。与“重新排列”不同,我希望用零填充新的列和行,并保持数据不变。 有办法吗?在
> a = np.zeros((5,5))
> a.flat = range(25)
> 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.]])
> a.resize((3,3),refcheck=False)
> a
array(
[[ 0., 1., 2.],
[ 3., 4., 5.],
[ 6., 7., 8.]])
谢谢你。。。在
我相信您希望使用numpy的切片语法,而不是
resize
。resize
首先遍历数组并使用1D视图。在你在这里所做的是观察纽比阵列。例如,要通过切片更新原始阵列:
^{pr2}$关于numpy切片语法的一个很好的指南可以在here找到。在
升迁(或padding)只能通过复制数据来实现。从一个零数组开始并适当地填充
升级到7x7是这样的
相关问题 更多 >
编程相关推荐