dataというnumpy arrayがあったとして、それが2次元リストか1次元リストか知りたい
# 1次元だけの空のarray data = [] # 1次元のarray data = [1, 2, 3] # 2次元のarray data = [[1, 2, 3], [4, 5, 6]]
これらを区別したい
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
そのために
- len(data)
- data.shape
- len(data.shape)
が使えそうかな〜とパッと思いました
ただ、data.shapeを使うと、すべて対応できそう
if data.shape[0] > 0 and len(data.shape) == 1: # これは data = [1, 2, 3] の場合 if data.shape[0] > 0 and len(data.shape) > 1: # これは data = [[1, 2, 3], [4, 5, 6]] の場合 if data.shape[0] == 0 # それ以外がdata = [] の場合
で判定できそう
なんでこんな判定が必要だったかというと、
テキストファイルをnp.genfromtxtという関数で読み込んであれこれやったときに、このテキストファイルの中身が1行か2行以上かでarrayの形が変わってくるから・・・
(たぶんnp.loadtxtでも同じことが起こりえる)
1次元だと
data[0]
data[1]
data[2]
とかで参照できるけど、
2次元だと
data[i, 0]
data[i, 1]
...
のように書かないといけないので、書き方が異なるっぽい
ランキングに参加中、クリックにご協力お願いします!