numpy中是否有函數確定字符串是否應該是整數或浮點數並自動轉換它們?例如,我經常使用str.strip()
和str.split()
的組合來從文本文件中解析記錄的集合。然後,我得到的東西像自動檢測/轉換數據類型?
List = [['1','a','.3'],
['2','b','-.5']]
上,然後使用numpy.rec.fromrecords
轉換:
In [1227]: numpy.rec.fromrecords(List)
Out[1227]:
rec.array([('1', 'a', '.3'), ('2', 'b', '-.5')],
dtype=[('f0', '|S1'), ('f1', '|S1'), ('f2', '|S3')])
在R,有一個叫type.convert
功能,其向量/字符串的列被通過,這將決定什麼該列的類型應該是(即如果它是字符串和數字的混合,它將保持一個字符向量)。 Excel也這樣做(基於前6個元素,如果我沒記錯的話)...
NumPy/Python中是否有這樣的函數?我知道我可以編寫一個函數來測試列中的每個元素是否可以轉換爲整數等等,但是有什麼內置的?我知道在所有的例子中,處方是明確指定dtypes,但我想跳過這一步。謝謝。如果設置dtype=None
這是一個非常有趣的解決方案!看起來有點間接......但也許這仍然是最好的方法...... – hatmatrix
實際上,對象包裝器的概念相當有用,就像'io.BytesIO'技巧一樣。我查看了源代碼以提取進行轉換的部分,但它看起來並不那麼直接,因爲它不是'np.genfromtxt'中的模塊化組件。這似乎是最好的。 – hatmatrix