Python 将形状数组(n,)转换为形状数组(n,1)

Python 将形状数组(n,)转换为形状数组(n,1),python,arrays,numpy,Python,Arrays,Numpy,我从带有numpy的.npz文件中读取了一个数组,它的形状我无法解释 当我打印数组时,我得到以下形式的数字: [1 2 3 2 1 8 9 8 3 4 ...] 没有任何逗号分隔它们 我想把这个数组转换成一个维数为numpy的数组(n,1),其中n是元素数,1是列数 有一种优雅的方法吗?形状(n,)意味着它是一个长度为n的一维数组。如果您认为形状(n,1)表示一维数组,那么它不表示,(n,1)表示由n个子数组组成的二维数组,每个子数组有一个元素 如果您真正想要的是一个shape(n,1)数组,

我从带有numpy的
.npz
文件中读取了一个数组,它的形状我无法解释

当我打印数组时,我得到以下形式的数字:

[1 2 3 2 1 8 9 8 3 4 ...]
没有任何逗号分隔它们

我想把这个数组转换成一个维数为numpy的数组
(n,1)
,其中n是元素数,1是列数

有一种优雅的方法吗?

形状
(n,)
意味着它是一个长度为
n
的一维数组。如果您认为形状
(n,1)
表示一维数组,那么它不表示,
(n,1)
表示由n个子数组组成的二维数组,每个子数组有一个元素

如果您真正想要的是一个shape
(n,1)
数组,则可以将
ndarray.reformate()
与shape
(-1,1)
-

演示-

In [64]: na
Out[64]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

In [65]: str(na)
Out[65]: '[0 1 2 3 4 5 6 7 8 9]'

In [66]: na.reshape((-1,1))
Out[66]:
array([[0],
       [1],
       [2],
       [3],
       [4],
       [5],
       [6],
       [7],
       [8],
       [9]])

In [67]: na.reshape((-1,1)).shape
Out[67]: (10, 1)
如您所见,这将数组从一维数组移动到二维数组,其中每个内行(内部数组)仅包含1个元素。这可能不是你想要的。输出类似于-

[1 2 3 2 1 8 9 8 3 4 ...]

只是numpy数组的
str()
结果,它确实意味着内部元素没有分离

缺少逗号并不重要。这就是
numpy
打印数组的方式(使用
str
格式)。如果希望看到逗号,请使用
repr
格式。
[1 2 3 2 1 8 9 8 3 4 ...]