2024-10-08 19:25:12 发布
网友
我有一个数字阵列其dtype=object,如下所示。在
fuzz_np = fuzz_df.values fuzz_np
结果是:
但是,我想转换它的dtype=float,以便使用resheme()方法。在
当我尝试以下代码时
fuzz_np.astype(float)
我收到错误消息“setting an array element with a sequence.”怎么了?在
制作一个对象数组并用列表填充它:
In [410]: arr = np.zeros(6,object) In [411]: for i in range(6): arr[i]=[1,2,3] In [413]: arr=arr.reshape(2,3) In [414]: arr Out[414]: array([[[1, 2, 3], [1, 2, 3], [1, 2, 3]], [[1, 2, 3], [1, 2, 3], [1, 2, 3]]], dtype=object)
astype不工作
astype
但名单中介机构会:
In [416]: np.array(arr.tolist()) Out[416]: array([[[1, 2, 3], [1, 2, 3], [1, 2, 3]], [[1, 2, 3], [1, 2, 3], [1, 2, 3]]])
对象数组包含指向列表(内存中其他位置)的指针。因此astype和{}无法将其转换为浮点数组。相反,我们必须从等价的嵌套列表中创建一个全新的数组。在
当一个或多个元素是数组时,只要大小匹配,tolist也可以工作
tolist
In [417]: arr[0,0]=np.arange(3) In [418]: arr Out[418]: array([[array([0, 1, 2]), [1, 2, 3], [1, 2, 3]], [[1, 2, 3], [1, 2, 3], [1, 2, 3]]], dtype=object) In [419]: arr.tolist() Out[419]: [[array([0, 1, 2]), [1, 2, 3], [1, 2, 3]], [[1, 2, 3], [1, 2, 3], [1, 2, 3]]] In [420]: np.array(arr.tolist()) Out[420]: array([[[0, 1, 2], [1, 2, 3], [1, 2, 3]], [[1, 2, 3], [1, 2, 3], [1, 2, 3]]])
制作一个对象数组并用列表填充它:
^{pr2}$astype
不工作但名单中介机构会:
对象数组包含指向列表(内存中其他位置)的指针。因此}无法将其转换为浮点数组。相反,我们必须从等价的嵌套列表中创建一个全新的数组。在
astype
和{当一个或多个元素是数组时,只要大小匹配,
tolist
也可以工作相关问题 更多 >
编程相关推荐