我列了一个清单:
l=[(1,2),(3,4)]
我想把它转换成一个numpy数组,并保持数组项类型为tuple:
array([(1,2),(3,4)])
但是numpy.array(l)将给予:
array([[1,2],[3,4)]])
并且项类型已从tuple更改为numpy.ndarray,则我指定了项类型
numpy.array(l,numpy.dtype('float,float'))
这给出:
array([(1,2),(3,4)])
但项类型不是元组而是numpy.void,所以问题是:
how to convert it to a numpy.array of tuple,not of numpy.void?
3条答案
按热度按时间m528fe3b1#
你可以有一个
object
dtype的数组,让数组的每个元素都是一个元组,如下所示-样品运行-
xtupzzrd2#
由于某种原因,如果您只需要一行代码,您就不能简单地这样做(即使Divakar的答案最终留给您的是
dtype=object
):相反,您必须这样做:
"f,f"
向数组发出信号,表示它正在接收两个浮点数的元组(或者您可以使用"i,i"
表示整数)。如果需要,您可以通过将.astype(object)
添加到上一行的末尾来强制转换回一个对象。g52tjvyc3#
刚刚发现panda有办法解决这个问题。你可以使用他们的
MultiIndex
类来创建一个元组数组,因为所有panda索引都是 Package 的一维numpy数组。这就像在元组列表上调用Index
构造函数一样简单。