我尝试将不同的数据类型添加到数组中:
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]
谁能解释为什么会这样?提前致谢!