我有一个大小为(214,144)的数组。我需要它(214,144,1)有没有一种方法可以在Python中轻松实现?基本上这些尺寸应该是(天,时间,站)。因为我只有1个站点的数据,所以维度将是1。但是,如果我还可以使代码具有足够的灵活性,对于说2个站点来说会很好(例如将维度大小从(428,288)改变为(214,144,2)))那太好了!如何在Python中将维度添加到numpy数组中
0
A
回答
5
你可以使用reshape
:
>>> a = numpy.array([[1,2,3,4,5,6],[7,8,9,10,11,12]])
>>> a.shape
(2, 6)
>>> a.reshape((2, 6, 1))
array([[[ 1],
[ 2],
[ 3],
[ 4],
[ 5],
[ 6]],
[[ 7],
[ 8],
[ 9],
[10],
[11],
[12]]])
>>> _.shape
(2, 6, 1)
除了改变从(x, y)
形状来(x, y, 1)
,你可以使用(x, y/n, n)
为好,但你可能要指定列的顺序取决于输入:
>>> a.reshape((2, 3, 2))
array([[[ 1, 2],
[ 3, 4],
[ 5, 6]],
[[ 7, 8],
[ 9, 10],
[11, 12]]])
>>> a.reshape((2, 3, 2), order='F')
array([[[ 1, 4],
[ 2, 5],
[ 3, 6]],
[[ 7, 10],
[ 8, 11],
[ 9, 12]]])
1
1)要向维度添加任意维度的数组a
:
b = numpy.reshape (a, list (numpy.shape (a)) + [1])
说明:
你得到的a
的形状,把它变成一个列表,串联1
到该列表,并使用该列表作为新形状的reshape
操作。
2)要指定尺寸的细分并自动计算最后一个尺寸的尺寸,请使用-1
作为最后尺寸的尺寸。例如为:
b = numpy.reshape(a, [numpy.size(a,0)/2, numpy.size(a,1)/2, -1])
b
的在这种情况下的形状将是[214,144,4]
。
(很明显,你可以结合如有必要,这两种方法):
b = numpy.reshape (a, numpy.append (numpy.array (numpy.shape (a))/2, -1))
+1
'np.expand_dims(a,-1)'做了这种'reshape',在末尾用'-1'参数添加一个新轴。没有新的功能,但新的'np.stack'使用它来连接任何新轴上的数组。 – hpaulj
+0
感谢@hpaulj很高兴知道! –
相关问题
- 1. 如何在Python 2.7中将列添加到2d numpy数组?
- 2. 如何在Python中获得numpy数组的真正维度?
- 3. 如何将列添加到numpy数组
- 4. 如何将NumPy数组附加到NumPy数组中
- 5. 如何在python中添加元素到3维数组
- 6. 如何在numpy中将数组追加到数组中?
- 7. 如何将numpy二维数组与numpy一维数组相乘?
- 8. 将PHP添加到多维数组中
- 9. 将维添加到数组
- 10. 如何将一维数组添加到二维数组?
- 11. 如何将密钥添加到AutoHotkey中的多维数组中?
- 12. 可能添加numpy数组到Python集?
- 13. 如何将数据添加到JavaScript中的二维数组
- 14. 如何在openCV中将灰度图像加载为numpy数组
- 15. 将新列/数组添加到Numpy数组中
- 16. Python:如何在PyTables中存储一个numpy多维数组?
- 17. 如何将用户输入添加到二维数组中
- 18. 如何将addslashes()添加到多维数组的元素中? (PHP)
- 19. 如何在Python中添加多维数组?
- 20. 将Excel文件加载到numpy二维数组中
- 21. 在Python 3中,如何交换2维numpy数组中的两个子数组?
- 22. 如何在numpy中从一维数组中提取零维片
- 23. python/numpy:如何获得二维数组列的长度?
- 24. 如何在Python/numpy中将3D数组结果保存到4D数组中?
- 25. 如何将两个1d numpy数组拉到2d numpy数组中
- 26. 将多维元素添加到numpy数组中而无需重新塑形
- 27. 如何可视化python numpy数组中的维数
- 28. Python,Numpy,在多维空间中添加数组的方法(广播)
- 29. 如何将数组添加到多维数组?
- 30. 将数据添加到3维数组
从形状改变'(428,288)''到(214,144,2)'没有意义:你在那里减少了元素的总数。你想要像(428,144,2)这样的东西吗? –
是的,这就是我的意思!抱歉! 428,144,2 – HM14