NumPy中的一维数组

时间:2018-03-04 15:21:14

标签: python arrays numpy

据我所知,1-D数组是那些只有1列和任意行数的数组,反之亦然。

如果我运行此代码:

import numpy as np

a = np.arange(10).reshape(1,10)

b = np.arange(10).reshape(10,1)

print(a.ndim, b.ndim)

它返回两者都是二维数组。 为什么?我知道电脑工作正常。但是,请你告诉我什么是一维阵列。

3 个答案:

答案 0 :(得分:1)

1-D数组是一个只有一个维度的数组。没有列或行。它有一些像a=[1,2,3,4,5,6]这样的行中的值。两个单独维度行和列的概念不适用于1-D阵列。因此,当您使用.reshape(1,10)定义第一个数组时,您为其指定了维度-1和10.因此,您实际上定义了维度为1x10的二维数组。

如果执行此代码 -

import numpy as np

a = np.arange(10).reshape(1,10)

b = np.arange(10).reshape(10,1)

print(a.ndim, b.ndim)
print(a)
print(b)

您将获得此输出 -

2 2
[[0 1 2 3 4 5 6 7 8 9]]
[[0]
 [1]
 [2]
 [3]
 [4]
 [5]
 [6]
 [7]
 [8]
 [9]]

这清楚地表明数组a有2个维度 - 一行和一列,因此是一个二维数组。

答案 1 :(得分:1)

.reshape(10,1)将数组重新整形为具有10行和1列的2维数组。但是,如果使用.reshape(10),您将获得一维数组。

答案 2 :(得分:0)

问题是reshape,你说reshape(1,10)。这意味着,将阵列重新整形为具有1行和10列的2d矩阵。你想要的是一个1d数组,所以你需要reshape(10)