我尝试了以下几点:
>>> arr2 = [[0, 0, 0, -0.9, 0.3], [0, 0, 1, 0.9, 0.6], [0, 1, 0, -0.2, 0.6], [0, 1, 1, 0.8, 0.3], [1, 0, 1, 0.2, 1.0], [1, 1, 0, -0.8, 1.0]]
>>> narr2 = np.array(arr2)
>>> narr2
array([[ 0. , 0. , 0. , -0.9, 0.3],
[ 0. , 0. , 1. , 0.9, 0.6],
[ 0. , 1. , 0. , -0.2, 0.6],
[ 0. , 1. , 1. , 0.8, 0.3],
[ 1. , 0. , 1. , 0.2, 1. ],
[ 1. , 1. , 0. , -0.8, 1. ]])
如何使前三列的类型为int
?这就是我如何获得以下信息:
>>> narr2
array([[ 0 , 0 , 0 , -0.9, 0.3],
[ 0 , 0 , 1 , 0.9, 0.6],
[ 0 , 1 , 0 , -0.2, 0.6],
[ 0 , 1 , 1 , 0.8, 0.3],
[ 1 , 0 , 1 , 0.2, 1. ],
[ 1 , 1 , 0 , -0.8, 1. ]])
我尝试了以下几点:
>>> narr2 = np.array(arr2,dtype='i4,i4,i4,f8,f8')
>>> narr2
array([[(0, 0, 0, 0. , 0. ), (0, 0, 0, 0. , 0. ),
(0, 0, 0, 0. , 0. ), (0, 0, 0, -0.9, -0.9),
(0, 0, 0, 0.3, 0.3)],
[(0, 0, 0, 0. , 0. ), (0, 0, 0, 0. , 0. ),
(1, 1, 1, 1. , 1. ), (0, 0, 0, 0.9, 0.9),
(0, 0, 0, 0.6, 0.6)],
[(0, 0, 0, 0. , 0. ), (1, 1, 1, 1. , 1. ),
(0, 0, 0, 0. , 0. ), (0, 0, 0, -0.2, -0.2),
(0, 0, 0, 0.6, 0.6)],
[(0, 0, 0, 0. , 0. ), (1, 1, 1, 1. , 1. ),
(1, 1, 1, 1. , 1. ), (0, 0, 0, 0.8, 0.8),
(0, 0, 0, 0.3, 0.3)],
[(1, 1, 1, 1. , 1. ), (0, 0, 0, 0. , 0. ),
(1, 1, 1, 1. , 1. ), (0, 0, 0, 0.2, 0.2),
(1, 1, 1, 1. , 1. )],
[(1, 1, 1, 1. , 1. ), (1, 1, 1, 1. , 1. ),
(0, 0, 0, 0. , 0. ), (0, 0, 0, -0.8, -0.8),
(1, 1, 1, 1. , 1. )]],
dtype=[('f0', '<i4'), ('f1', '<i4'), ('f2', '<i4'), ('f3', '<f8'), ('f4', '<f8')])
可以看出,我没有得到期望的输出。似乎我不明白在创建数组时如何指定类型以及哪里出错
使用元组列表:
或者使用
recfunctions
实用程序:我建议您将列表转换为元组,然后分配数据类型。以下是我的解决方案:
检查每列的数据类型:
给出:
相关问题 更多 >
编程相关推荐