0

配列にさまざまなデータ型を追加しようとしています。

mtype = np.dtype({'names':['a', 's', 'x', 'y'], 
                  'formats':['f8', 'S10', 'f8',   'f8']})

また

mtype = np.dtype([("a", np.float), ("s", np.str), 
                  ("x", np.float), ("y", np.float)])

配列:

a[i] = np.empty([4, d[i]], dtype= mtype)

配列へのデータaは SQL クエリから読み取られますa。ループには 4 つの異なる配列があります。

a[0], a[1], a[2], a[3]

それぞれに異なる SQL クエリがあります。

データベース内のデータは、sqlite3 パッケージによって読み取られます。

cur.execute(('''CREATE TABLE example
     (a real, s text , t real, x real, y real)''')

for j in range(len(rows)):
     a[i][0, j] = rows[j][0]
     a[i][1, j] = rows[j][1]
     a[i][2, j] = rows[j][2]
     a[i][3, j] = rows[j][3]

そして、次のエラーが表示されます。

File "C:\(..)", line 39,
in diff_spec
     a[i][0, j] = rows[j][0]
TypeError: expected a readable buffer object

配列だけを次のように作成するaと:

a[i] = np.empty([4, d[i]], float)

2 番目の列 (文字列) を読み取らないと、エラーは発生しません。

for j in range(len(rows)):
    a[i][0, j] = rows[j][0]
    # a[i][1, j] = rows[j][1]
    a[i][2, j] = rows[j][2]
    a[i][3, j] = rows[j][3]

なぜこれが起こるのか誰か説明できますか?前もって感謝します!

4

0 に答える 0