gpt4 book ai didi

python - numpy.arange 返回数组的多个副本?

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:01 25 4
gpt4 key购买 nike

我正在尝试用基于像素的图像的所有 x 坐标的列表填充一个 numpy 数组。所以基本上,n x m 图像将有 n 1n 2的,依此类推,直到 n m。有没有一种简单的方法来填充一个 numpy 数组,以便出现这种情况?

到目前为止,我已经考虑过使用 numpy.concatenate,但是必须单独提出每个数组似乎非常乏味,而且无论如何我都会使用循环,这会真的很有帮助。 numpy.flatten 也可以找到,但我必须先生成网格。有什么简单的解决办法吗?

最佳答案

总是有通常的网格创建函数mgrid():

x_coords = numpy.mgrid[:m, :n][0]+1  # [[1, 1, 1…], [2, 2, 2,…]]. Element 1 is instead: [[1, 2, 3,…], [1, 2, 3,…]]

(PS:如果 mnimage 的维度,DSM 的 numpy.indices(image.shape) 会更简单。)

如果需要 float 坐标,则更通用的“复杂步骤”形式可以有效地提供它们

numpy.mgrid[:m:(m+1)*1j, :n:(n+1)*1j]  # m+1 values from 0 to m, n+1 values from 0 to n

(另一种选择是将 float 1. 添加到第一种形式,但这会不必要地首先创建一个整数数组)。

如果你只需要一个坐标,这有点浪费,因为 mgrid[] 也为另一个坐标创建了一个类似的网格(mgrid[] 有两个元素,这里)。

在某些情况下,使用低内存占用 numpy.ogrid[] 可能更有效,在这种情况下创建的行和列是自动广播以覆盖二维网格。事实上,它们只使用很少的内存也可以加快速度(更少的内存访问)。

关于python - numpy.arange 返回数组的多个副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16755667/

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