我知道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
但是,如果我的数组只有一行,则返回[Numberof 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数组的行数?
发布于 2018-07-30 13:44:34
可以检查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)
发布于 2018-07-30 14:20:11
当你拥有2D数组时,行和列的概念适用。但是,数组numpy.array([1,2,3,4])
是一维数组,因此只有一个维度,因此shape
正确返回单值迭代。
对于同一阵列的2D版本,请考虑以下内容:
>>> a = numpy.array([[1,2,3,4]]) # notice the extra square braces
>>> a.shape
(1, 4)
https://stackoverflow.com/questions/-100005860
复制相似问题