我尝试将不同的数据类型添加到数组中:
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)
从SQL查询中读取数组a
的数据,循环中有4个不同的数组a
:
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]
有人可以解释为什么会这样吗?提前谢谢!