擅长:python、mysql、java
<p>我在使用Pandas中读过它,它让您可以很容易地设置每列的数据类型。在</p>
<pre><code>import numpy as np
import pandas as pd
pdDF = pd.read_csv(
'test_data.csv',
header=None,
names=list('abcdef'),
dtype=dict(zip(list('abcdef'),[str]+[float]*5)))
</code></pre>
<p>现在每个列都将具有适当的数据类型。在</p>
^{pr2}$
<p>如果您还想在numpy数组中使用它,您可以只获取值。在</p>
<pre><code>npArr = pdDF.values
npArr
Out[27]:
array([['A', 1.0, 2.0, 3.0, 4.0, 5.0],
['B', 6.0, 7.0, 8.0, 9.0, 10.0],
['C', 11.0, 12.0, 13.0, 14.0, 15.0],
['A', 16.0, 17.0, 18.0, 19.0, 20.0]], dtype=object)
</code></pre>
<p>它仍然是'row'数组的对象,因为您不能将'A'变成float,但是各个值将根据需要成为float。在</p>
<pre><code>type(npArr[0,1])
Out[28]: float
</code></pre>
<p>最后,如果你只想要一个浮点数数组,那也很容易。。。只需将第一列以外的所有列作为数组输出,它将具有dtype:float而不是object。在</p>
<pre><code>pdDF.loc[:,pdDF.columns>='b'].values
Out[28]:
array([[ 1., 2., 3., 4., 5.],
[ 6., 7., 8., 9., 10.],
[ 11., 12., 13., 14., 15.],
[ 16., 17., 18., 19., 20.]])
pdDF.loc[:,pdDF.columns>='b'].values.dtype
Out[29]: dtype('float64')
</code></pre>