【问题标题】:Python - Copying into Numpy Array of set sizePython - 复制到设定大小的 Numpy 数组
【发布时间】:2026-01-27 14:15:01
【问题描述】:

我有一个未知大小的数组 - 其尺寸小于 100 x 100;我需要将它复制到另一个设定大小的 Numpy 数组中 - 100 x 100。

emptyArray = np.empty(shape=[100,100])
fullArray = np.append(emptyArray, data1[y1:y2, x1:x2])

我需要这个,以便稍后在我的代码中使用相同大小的 fullArray,但这似乎不起作用。因此需要将数据附加到 100 x 100 数组的顶角。

有人对如何做到这一点有任何建议吗?是现有的 Numpy 方法还是其他方法?

【问题讨论】:

  • 所有 NumPy 数组都知道它们的大小 my_array.shape。 Python 列表列表也是len(my_list)。你怎么会有一个未知大小的数组?
  • 除了 Mike 的正确评论之外,您是否确定要复制到的数组的大小总是更大,无论是列数还是行数?
  • 我会知道数组的大小是的,但它总是低于 100 行和列。

标签: python arrays numpy


【解决方案1】:

您应该知道较小数组的尺寸,但我从您的问题推测它小于 100x100,但因模拟而异。你可以这样解决:

nx,ny = smallerArray.shape
largeArray[0:nx,0:ny] = smallerArray[0:nx,0:ny]

【讨论】:

  • 我对它的工作原理有点困惑?当我打印 largeArray[0:nx,0:ny] 时,它给出的结果与较小的数组相同,但每一行都是一个新列表?而不是较大数组中较小数组中的所有数据。因此,如果我的较小数组的大小不同,那么较大的数组也不会不同吗?
  • 您是在谈论您的解决方案还是我提供的解决方案?
  • 你的,我想我只是有点困惑如何/为什么这将使 largeArray 保持恒定大小,而不管 smallArray 的大小。我无法判断打印是否正确,因为我只是看到较小数组中的元素。
  • 您的解决方案是将新元素(作为列表)附加到现有的 largeArray 中,我的只是更改现有元素。