【发布时间】:2018-03-16 02:20:18
【问题描述】:
我有一个元组列表,其中一个是对象,另一个是通用的。当我运行np.asarray(list_in) 时,结果是一个二维数组,元组连续转换。但是我想获得一个由元组组成的一维数组。
我可以传递一个dtype 来强制它,如果我尝试这个简约的例子,它会很好地工作
a = [(1,2),(3,4)]
b = np.asarray(a,dtype=('float,float'))
print b
[( 1., 2.) ( 3., 4.)]
但是我如何获取列表的第一个元素并从中构造一个正确的dtype。 type(list_in[0]) 返回 tuple 并将其传递给 asarray 不起作用。
【问题讨论】:
-
什么是 proper dtype ?为什么你没有得到你所期待的——你期待是什么?
-
我假设您希望 dtype 是每个元素的类型的元组?
-
可以说是
(MyObject,float),但也可以是(MyObject,anotherObject)。它被编码在列表的第一个元素中 -
np.array(a, dtype=tuple(type(x) for x in a[0]))是您要找的吗? -
@cᴏʟᴅsᴘᴇᴇᴅ 是的,没错