python-列出comprehension或map()或for循环,用于访问上一行以操纵数组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-列出comprehension或map()或for循环,用于访问上一行以操纵数组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含871字,纯文字阅读大概需要2分钟。
内容图文
![python-列出comprehension或map()或for循环,用于访问上一行以操纵数组](/upload/InfoBanner/zyjiaocheng/663/14086e7352594a8c905bd9c994f923dc.jpg)
假设我有一个array(numpy array)A = [[1、2、3],[0、0、0],[0、0、0]],我想将零行处理为[2、3, 1],[3、1、2],因此最终数组为A = [[1、2、3],[2、3、1],[3、1、2]]
我可以通过如下所示的for循环来做到这一点:
a = np.array([[1, 2, 3],[0, 0, 0],[0, 0, 0]])
for i in xrange(1,3):
a[i]=np.concatenate([a[i-1][1:], a[i-1][:1]], axis=1)
转到上一行,将[1:]和[:1]连接起来,将结果分配为下一行.
我有许多这样的循环,我想知道是否可以摆脱for循环,从而提高速度(也许吗?).有什么办法可以使用列表推导或映射吗?我的A数组不必是nxn且行数为零,除了第一个,它可以只是A = [1,2,3,…,n],如果有一种方法可以使用A创建nx3数组作为开始,请继续使用上一行并将其[m:]和[:m]串联在一起. (任意米)
是的,也许for循环是执行此操作的唯一/正确方法.我想知道是否.
解决方法:
for循环是最简单的方法,列表理解或映射不会获得太大的速度.但是您可以使用roll代替串联:
a = numpy.array([1, 2, 3])
a = numpy.vstack([numpy.roll(a, -i) for i in xrange(3)])
内容总结
以上是互联网集市为您收集整理的python-列出comprehension或map()或for循环,用于访问上一行以操纵数组全部内容,希望文章能够帮你解决python-列出comprehension或map()或for循环,用于访问上一行以操纵数组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。