首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么1D数组的形状不会将行数显示为1?

为什么1D数组的形状不会将行数显示为1?
EN

Stack Overflow用户
提问于 2018-07-30 05:05:09
回答 2查看 0关注 0票数 0

我知道numpy数组有一个叫做shape的方法,它返回[No.of rows,No.of columns],shape [0]给你行数,shape [1]给你列数。

代码语言:javascript
复制
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]将不在索引中。例如

代码语言:javascript
复制
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数组的行数?

EN

回答 2

Stack Overflow用户

发布于 2018-07-30 13:44:34

可以检查len()由形状返回的元组,或者仅检查索引错误:

代码语言:javascript
复制
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个维度形状:

代码语言:javascript
复制
try:
    shape = (a.shape[0], a.shape[1])
except IndexError:
    shape = (1, a.shape[0])

print(shape)
票数 0
EN

Stack Overflow用户

发布于 2018-07-30 14:20:11

当你拥有2D数组时,的概念适用。但是,数组numpy.array([1,2,3,4])是一维数组,因此只有一个维度,因此shape正确返回单值迭代。

对于同一阵列的2D版本,请考虑以下内容:

代码语言:javascript
复制
>>> a = numpy.array([[1,2,3,4]]) # notice the extra square braces
>>> a.shape
(1, 4)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档