1. ホーム
  2. python

[解決済み] list' オブジェクトには 'shape' という属性がありません。

2022-01-30 08:40:56

質問

numpyの配列に配列を作成する方法を教えてください。

def test(X, N):
    [n,T] = X.shape
    print "n : ", n
    print "T : ", T



if __name__=="__main__":

    X = [[[-9.035250067710876], [7.453250169754028], [33.34074878692627]], [[-6.63700008392334], [5.132999956607819], [31.66075038909912]], [[-5.1272499561309814], [8.251499891281128], [30.925999641418457]]]
    N = 200
    test(X, N)

次のようなエラーが発生します。

AttributeError: 'list' object has no attribute 'shape'

ということは、Xをnumpyの配列に変換する必要があるのでは?

どのように解決するのですか?

使用方法 numpy.array を使用します。 shape 属性を使用します。

>>> import numpy as np
>>> X = np.array([
...     [[-9.035250067710876], [7.453250169754028], [33.34074878692627]],
...     [[-6.63700008392334], [5.132999956607819], [31.66075038909912]],
...     [[-5.1272499561309814], [8.251499891281128], [30.925999641418457]]
... ])
>>> X.shape
(3L, 3L, 1L)

ノート X.shape は、与えられた配列に対して3項目のタプルを返します。 [n, T] = X.shape レイズ ValueError .