我有一个2D numpy数组,比如说array1有值. array1的尺寸为2×4.我想创建一个尺寸为20x20x2x4的4D numpy数组array2,我希望复制数组array1来获取这个数组.
也就是说,如果array1是
[[1,2,3,4],[5,6,7,8]]
我想要
array2[0,0] = array1 array2[0,1] = array1 array2[0,2] = array1 array2[0,3] = array1 # etc.
我怎样才能做到这一点?
解决方法
一种初始化方法 –
array2 = np.empty((20,20) + array1.shape,dtype=array1.dtype) array2[:] = array1
运行时测试 –
In [400]: array1 = np.arange(1,9).reshape(2,4) In [401]: array1 Out[401]: array([[1,8]]) # @MSeifert's soln In [402]: %timeit np.tile(array1,(20,20,1,1)) 100000 loops,best of 3: 8.01 µs per loop # Proposed soln in this post In [403]: %timeit initialization_based(array1) 100000 loops,best of 3: 4.11 µs per loop # @MSeifert's soln for READONLY-view In [406]: %timeit np.broadcast_to(array1,4)) 100000 loops,best of 3: 2.78 µs per loop
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。