numpy:将数组沿着新轴延伸?
当然,必须有办法做到这一点......我无法解决这个问题。我有一个(9,4)数组,我想沿着第三轴重复4096次...所以它变成了简单的(9,4,4096),每个数值都来自9,4数组。简单地沿新轴线重复4096次。numpy:将数组沿着新轴延伸?
如果我半信半疑的3D图是有道理的(对角线为Z轴)
4| /off to 4096
3|/
2|/
1|/_ _ _ _ _ _ _ _ _
1 2 3 4 5 6 7 8 9
干杯
编辑:只是为了澄清,这里强调的是(9,4)阵列对新轴的4096行中的每一行重复执行。设想一个截面 - 每个原始(9,4)阵列是4096长方体之一。
这里有一种方法:
import scipy
X = scipy.rand(9,4,1)
Y = X.repeat(4096,2)
如果X
就交给你了,因为只有(9,4),然后
import scipy
X = scipy.rand(9,4)
Y = X.reshape(9,4,1).repeat(4096,2)
再次感谢史蒂夫,感到困惑,因为我没有意识到在使用重复方法之前必须重新整形数组 - 它一直告诉我我试图使用未定义的轴。尽管现在有意义。 – 2010-03-02 10:33:37
您也可以依靠广播规则重复填充重新排列的阵列:
import numpy
X = numpy.random.rand(9,4)
Y = numpy.resize(X,(4096,9,4))
如果您不喜欢用这种方式订购的轴,则可以转置:
Z = Y.transpose(1,2,0)
问题是超级老了,但这里的另一种选择呢:
import numpy as np
X = np.random.rand(9,4)
Y = np.dstack([X] * 4096)
而不是'[X for i in range(4096)]''你可以做'[X] * 4096'。 – blubberdiblub 2016-04-29 08:36:10
良好的通话,编辑我的答案。 – DavidS 2016-05-02 17:31:17
'np.tile'是另一种选择。请参阅[此问题]的答案(http://stackoverflow.com/q/1721802/2623899)。 – dbliss 2013-11-27 22:21:26
你也绘制了4乘9矩阵的图。 :) – 2015-05-17 18:32:06