我目前正在从SQLite数据库中阅读颜色,方法如下:
import numpy as np, apsw
connection = apsw.Connection(db_name)
cursor = connection.cursor()
desc = {'names':('name','R','G','B'),'formats':('a3','float','float','float')}
colorlist = np.array(cursor.execute("SELECT name, R, G, B FROM Colors").fetchall(),desc)
但是我希望在一个只有两列的NumPy数组中读入这些数据,其中第二列是一个包含(R,G,B)的元组,即类似于:
desc = {'names':('name','Color'),'formats':('a3','float_tuple')}
colorlist = np.array(cursor.execute("SELECT name, R, G, B FROM Colors").fetchall(),desc)
我想这样做是为了简化我后面的一些语句,其中我将颜色从数组中提取为元组,并消除我创建字典来为我做这件事的需要:
colorlist[colorlist['name']=='BOS']['Color'][0]
1条答案
按热度按时间bvuwiixz1#
你真的需要一个
tuple
吗?或者你只是想把值分组吗?你可以为每个字段创建一个任意形状的numpy记录数组...这甚至适用于n维数组:
部分适用于您的特定问题:
使用
rec.fromarrays
从两个常规数组生成记录数组:完整的解决方案:
如果由于某种原因不能像这样拆分查询,则只能拆分查询结果,可能使用列表解析: