我有60mb的文件有很多行。從文本文件中創建numpy數組的最快方法
的每一行都具有以下格式:
(x,y)
每條線將被解析爲以形狀(1,2)一個numpy的載體。
最後,它應該在shpae(N,2) 處連接成一個大的numpy數組,其中N是行數。
什麼是最快的方法呢?因爲現在需要很多時間(超過30分鐘)。
我的代碼:
with open(fname) as f:
for line in f:
point = parse_vector_string_to_array(line)
if points is None:
points = point
else:
points = np.vstack((points, point))
當分析器:
會提高速度def parse_vector_string_to_array(string):
x, y =eval(string)
array = np.array([[x, y]])
return array
你看過實際的['numpy.loadtxt'](https://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html)函數嗎?這正是它所寫的。 – CoryKramer
@CoryKramer它期望的文本格式是什麼?我應該改變它嗎?4 – member555
絕對不*做這個:'points = np.vstack((points,point))''。這會導致每個新行都複製'points'。相反,使'points'成爲一個python列表,並追加到它。在完成讀取文件之前,不要將其轉換爲numpy數組。 –