我的工具包中有以下功能,并且非常依赖它。我发现很难相信这不会是一个笨拙的内置来做到这一点,但我在numpy搜索可能的函数名称,谷歌搜索这个问题的各种解释,并没有发现任何东西。有东西吗?
def project(a, maxdim):
"""
Return a view of the numpy array <a> that has at least <maxdim>+1
dimensions (pad a.shape with 1's on the right if necessary).
"""
if isinstance(a, numpy.matrix) and maxdim > 1: a = numpy.asarray(a)
else: a = a.view()
a.shape += (1,) * (maxdim-len(a.shape)+1)
return a
答案 0 :(得分:3)
MATLAB,默认的Fortran订单,在右侧自动添加尺寸。 count += line.Count(letter => search == letter);
是默认的C顺序,并且更喜欢将它们附加在左侧。
numpy
需要一个np.array
参数,根据需要预先设置1。
e.g。
ndmin
有3个In [89]: np.array([1,2,3],ndmin=4).shape
Out[89]: (1, 1, 1, 3)
个功能。
np.atleast_?d
{p> In [92]: np.atleast_2d([1,2,3]).shape
Out[92]: (1, 3)
In [93]: np.atleast_3d([1,2,3]).shape
Out[93]: (1, 3, 1)
在atleast_3d
中使用,可能已经明确写入了该用途。
广播时,np.dstack
会根据需要添加尺寸;等待他们的帖子需要你做出明确的行动。这只是开发人员选择的默认numpy
。
numpy
np.ones((3,4,5))+np.zeros((5))
也会带一个np.array
参数
copy