Конвертировать список строк в массив с плавающей точкой - PullRequest
0 голосов
/ 18 июня 2019

Предположим, у меня есть список строк, и я хочу преобразовать его в массив numpy. Например, у меня есть

A=A=['[1 2 3 4 5 6 7]','[8 9 10 11 12 13 14]']
print(A)
['[1 2 3 4 5 6 7]', '[8 9 10 11 12 13 14]']

Я хочу, чтобы мой вывод был следующим: матрица 2 на 7

[1 2 3 4 5 6 7;8 9 10 11 12 13 14]

До сих пор я пробовал следующее:

m=len(A)
M=[]
for ii in range(m):
    temp=A[ii]
    temp=temp.strip('[')
    temp=temp.strip(']')
    M.append(temp)
print(np.asarray(M))

однако мой вывод следующий:

['1 2 3 4 5 6 7' '8 9 10 11 12 13 14']

Может ли кто-нибудь помочь мне правильно убрать левую и правую скобки и преобразовать результат в матрицу чисел с плавающей точкой.

1 Ответ

1 голос
/ 18 июня 2019

Просто идите прямым путем. Снять скобки, разделить пробелы и преобразовать их в float перед отправкой результата в numpy.array:

np.array([[float(i) for i in j[1:-1].split()] for j in A])

Тестовый код:

import numpy as np
A = ['[1 2 3 4 5 6 7]','[8 9 10 11 12 13 14]']
print(np.array([[float(i) for i in j[1:-1].split()] for j in A]))

Результаты:

[[  1.   2.   3.   4.   5.   6.   7.]
 [  8.   9.  10.  11.  12.  13.  14.]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...