br
là tên của một danh sách các chuỗi mà đi như thế này:Chuyển đổi một danh sách các chuỗi trong một mảng NumPy một cách nhanh
['14 0.000000 -- (long term 0.000000)\n',
'19 0.000000 -- (long term 0.000000)\n',
'22 0.000000 -- (long term 0.000000)\n',
...
Tôi quan tâm đến hai cột đầu tiên, mà tôi muốn để chuyển đổi thành mảng có nhiều mảng. Cho đến nay, tôi đã đi lên với các giải pháp sau đây:
x = N.array ([0., 0.])
for i in br:
x = N.vstack ((x, N.array (map (float, i.split()[:2]))))
Điều này dẫn vào có một mảng 2-D:
array([[ 0., 0.],
[ 14., 0.],
[ 19., 0.],
[ 22., 0.],
...
Tuy nhiên, vì br
là khá lớn (~ 10^5 mục), thủ tục này mất một thời gian. Tôi đã tự hỏi, liệu có cách nào để đạt được kết quả tương tự, nhưng trong thời gian ngắn hơn?
aa = numpy.array ([x.split ('', 2) [0: 2] cho x trong br], dtype = 'float') – steabert
Tốt để biết về 'liệt kê': Tôi không biết về nó ! Cũng cảm ơn @steabert đến đóng góp của anh ấy. Tốc độ của cả hai giải pháp có vẻ khá giống với tôi. – Jir