請從列表中簡單的數組:
In [26]: features = ['20.57', '17.77', '132.9', '0.07017', '0.1812', '0.667']
In [27]: features
Out[27]: ['20.57', '17.77', '132.9', '0.07017', '0.1812', '0.667']
In [28]: features = np.array(features)
In [29]: features
Out[29]:
array(['20.57', '17.77', '132.9', '0.07017', '0.1812', '0.667'],
dtype='<U7')
請注意,這是一個字符串數組
我可以用astype
,使花車的一個新的數組:
In [30]: features.astype(float)
Out[30]:
array([ 2.05700000e+01, 1.77700000e+01, 1.32900000e+02,
7.01700000e-02, 1.81200000e-01, 6.67000000e-01])
但是這並不會改變原始的features
陣列。它仍然是字符串。
In [31]: features
Out[31]:
array(['20.57', '17.77', '132.9', '0.07017', '0.1812', '0.667'],
dtype='<U7')
我不得不重新分配features
變量獲得一個新的浮動陣列
In [32]: features = features.astype(float)
In [33]: features
Out[33]:
array([ 2.05700000e+01, 1.77700000e+01, 1.32900000e+02,
7.01700000e-02, 1.81200000e-01, 6.67000000e-01])
我可以直接去從字符串列表中的float數組:
In [34]: features = ['20.57', '17.77', '132.9', '0.07017', '0.1812', '0.667']
In [35]: features = np.array(features,float)
In [36]: features
Out[36]:
array([ 2.05700000e+01, 1.77700000e+01, 1.32900000e+02,
7.01700000e-02, 1.81200000e-01, 6.67000000e-01])
但是,如果列表中有任何字符串不能轉換爲浮點數,我會得到一個錯誤或一個字符串數組。
另外我不能就地或變化零碎
In [40]: features[1] = float(features[1])
In [41]: features
Out[41]:
array(['20.57', '17.77', '132.9', '0.07017', '0.1812', '0.667'],
dtype='<U7')
的features
陣列被固定爲U7
;我無法改變它漂浮;我只能創建一個從原始值派生的新數組。
其實,我只是做了類似的: floatfeatures = features [1:] floatfeatures = np.array(floatfeatures,dtype = float) 它工作。 – nanachan