Python 为什么一维数组的形状不将行数显示为1?
我知道numpy数组有一个名为shape的方法,它返回[No.of rows,No.of columns],shape[0]给出行数,shape[1]给出列数Python 为什么一维数组的形状不将行数显示为1?,python,arrays,numpy,Python,Arrays,Numpy,我知道numpy数组有一个名为shape的方法,它返回[No.of rows,No.of columns],shape[0]给出行数,shape[1]给出列数 a = numpy.array([[1,2,3,4], [2,3,4,5]]) a.shape >> [2,4] a.shape[0] >> 2 a.shape[1] >> 4 但是,如果我的数组只有一行,那么它将返回[No.of columns,]。形状[1]将不在索引中。比如说 a = numpy
a = numpy.array([[1,2,3,4], [2,3,4,5]])
a.shape
>> [2,4]
a.shape[0]
>> 2
a.shape[1]
>> 4
但是,如果我的数组只有一行,那么它将返回[No.of columns,]。形状[1]将不在索引中。比如说
a = numpy.array([1,2,3,4])
a.shape
>> [4,]
a.shape[0]
>> 4 //this is the number of column
a.shape[1]
>> Error out of index
现在,如果一个numpy数组可能只有一行,那么如何获得该数组的行数
谢谢行和列的概念适用于二维阵列。但是,数组numpy.array([1,2,3,4])
是一个一维数组,因此只有一个维度,因此shape
正确地返回一个单值iterable
对于同一个数组的2D版本,请考虑以下内容:
>>> a = numpy.array([[1,2,3,4]]) # notice the extra square braces
>>> a.shape
(1, 4)
而不是将其转换为2d数组,这可能不是每次都可以选择的-可以检查shape返回的元组的
len()
,或者只检查索引错误:
import numpy
a = numpy.array([1,2,3,4])
print(a.shape)
# (4,)
print(a.shape[0])
try:
print(a.shape[1])
except IndexError:
print("only 1 column")
或者,如果您知道只有1或2维形状,您可以尝试将其分配给一个变量以供以后使用(或返回或您所拥有的内容):
try:
shape = (a.shape[0], a.shape[1])
except IndexError:
shape = (1, a.shape[0])
print(shape)
@如果你从一个一维数组开始(
a_1d=numpy.array([1,2,3,4])
),你总是可以将它转换成一个二维数组,例如a_2d=a_1d[None,:]