加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 11:27:38 所属栏目:Python 来源:网络整理
导读:我正在尝试使用基于像素的图像的所有x坐标列表来填充numpy数组.所以基本上,n x m图像将具有n 1,n 2,依此类推,直到n m.是否有一种简单的方法来填充numpy数组,以便这种情况? 到目前为止,我已经考虑过使用numpy.concatenate了,但是单独提出每个数组看起来非常
我正在尝试使用基于像素的图像的所有x坐标列表来填充numpy数组.所以基本上,n x m图像将具有n 1,n 2,依此类推,直到n m.是否有一种简单的方法来填充numpy数组,以便这种情况?

到目前为止,我已经考虑过使用numpy.concatenate了,但是单独提出每个数组看起来非常繁琐,而且无论如何我都会使用循环,这实际上没有用. numpy.flatten也来找,但我必须首先生成网格.有没有简单的解决方案?

解决方法

总是有通常的网格创建功能mgrid():

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

(PS:如果m和n是图像的维度,则DSM的numpy.indices(image.shape)更简单.)

如果需要浮点坐标,则更通用的“复杂步骤”形式以有效的方式给出它们

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 []可能更有效,在这种情况下会创建一个自动广播的行和列,以覆盖二维网格.他们只使用很少的内存这一事实也可以加快速度(减少内存访问).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读