2016-09-21 21 views
14

numpy配列には、[No.of rows、Numberof columns]を返すshapeというメソッドがあり、shape [0]は行数を与えることが分かっています。あなたは列の数です。numpy配列の行数

a = numpy.array([[1,2,3,4], [2,3,4,5]]) 
a.shape 
>> [2,4] 
a.shape[0] 
>> 2 
a.shape[1] 
>> 4 

ただし、配列には1行しかない場合は、[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の配列の行数を取得するのですか?

はあなた

答えて

25

あなたが2次元配列を持っている場合に適用さ列の概念をありがとうございました。しかし、配列numpy.array([1,2,3,4])は1次元配列であり、次元は1つしかないため、shapeは正しく1つの値を返すことができます。同じアレイの2Dバージョンの

、代わりに次の検討:いうし

>>> a = numpy.array([[1,2,3,4]]) # notice the extra square braces 
>>> a.shape 
(1, 4) 
+0

私の人生を保存してください!ありがとうございました –

+0

@ YichuanWang 1次元配列( 'a_1d = numpy.array([1,2,3,4])')から始めると、常に2次元配列に変換できます例えば ​​'a_2d = a_1d [なし、:]' – donkopotamus

2

毎回オプションではないかもしれない2Dアレイ、これを変換する - 一つの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) 
+0

ありがとうございます。私はPythonに新しいので、私はこの「try except」方法を使うことさえ考えなかった。あなたの答えは目を開く! –