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)

而且我没有阅读第二列(这是字符串),我不会收到错误消息。

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