微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用另一个数组作为参考来更改numpy数组的值而无循环

如何解决使用另一个数组作为参考来更改numpy数组的值而无循环

我有这个数组

x = np.array([0,0
              1,1,1
              2,2,2])

y = np.array([4,5,6])

我希望x成为

[4,4,4
 5,5
 6,6,6]

含义,x中的i变为y[i]。我觉得花哨的索引编制将对我有帮助,但是我对麻木和挣扎不熟悉。


输入;

[[  0   0   0 ... 255 255 255]
 [  0   0   0 ... 255 255 255]
 [  0   0   0 ... 255 255 255]
 ...
 [  0   0   0 ... 255 255 255]
 [  0   0   0 ... 255 255 255]
 [  0   0   0 ... 255 255 255]]

和我想要的输出,给定长度为y的{​​{1}}

y = np.array([5,7.......261])

解决方法

您可以使用np.repeat

>>> np.repeat(y,x.size / y.size)
array([4,4,5,6,6])
,

如果有(我认为您想要):

x = np.array([[0,0],[1,1,1],[2,2,2]])

y = np.array([4,6])

然后:

y[x]

Out: 
array([[4,4],[5,5],[6,6]])

那是。 。 。索引如何工作:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。