NumPy中的一维数组

问题描述 投票:1回答:3

据我所知,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)

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

python arrays numpy
3个回答
1
投票

一维数组是只有一个维度的数组。没有列或行。它有一些像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
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.