在python中通过另外两个修改的数组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在python中通过另外两个修改的数组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含921字,纯文字阅读大概需要2分钟。
内容图文
![在python中通过另外两个修改的数组](/upload/InfoBanner/zyjiaocheng/786/c885f80ff97847aaa9b11c53000b2e97.jpg)
参见英文答案 > Assigning identical array indices at once in Python/Numpy 1个
假设我们有三个1-D阵列:
> A(长度为5),
> B(长度相同,示例中为5)
> C(更长,比如长度100)
C最初用零填充. A给出应该改变的C元素的索引(它们可以重复),B给出应该加到C的初始零的值.例如,如果A = [1,3,3,3,29]并且B = [2,3,4,2,3],C [1]应为2,C [3] – 9,C [29] – 3;所有其他C元素应保持为0.
我把它写成for循环:
for i in range(len(A) - 1):
C[A[i]] = C[A[i]] + B[i]
但有没有一种更有效的方法在矢量形式的numpy中做同样的事情?
解决方法:
我想你可以使用bincount,至少对于1-D案例:
>>> A = np.array([1,3,3,3,29])
>>> B = np.array([2,3,4,2,3])
>>> np.bincount(A, B)
array([ 0., 2., 0., 9., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 3.])
(旁白:使用numpy索引时的重复值可能会非常奇怪,并且很容易被你在简单情况下看到的行为误导.我完全避免它们,因为行为几乎不是我想要的.)
内容总结
以上是互联网集市为您收集整理的在python中通过另外两个修改的数组全部内容,希望文章能够帮你解决在python中通过另外两个修改的数组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。