В чем разница между списками - PullRequest
0 голосов
/ 07 сентября 2018

У меня два списка, полученных одним и тем же способом, только первый читается непосредственно из списка, а второй выгружается из postgresql:

List1

>>> print(type(list1))
... <class 'list'>
>>> print(list1)
... [array([-0.11152368,  0.1186936 ,  0.00150046, -0.0174517 , -0.14383622,
            0.04046987, -0.07069934, -0.09602138,  0.18125986, -0.14305925])]
>>> print(type(list1[0][0]))
... <class 'numpy.float64'>

List2

>>> print(type(list2))
... <class 'tuple'>
>>> print(list2)
... (['-0.03803351', '0.07370875', '0.03514577', '-0.07568369', '-0.07438357'])
>>> list2 = list(list2)
>>> print(type(list2))
... <class 'list'>
>>> print(list2)
... [['-0.03803351', '0.07370875', '0.03514577', '-0.07568369', '-0.07438357']]
>>> print(type(list2[0][0]))
... <class 'str'>

Как я вижу разницу в элементах? Как я могу получить такие предметы, как <class 'numpy.float64'> из списка 2?

И почему тип list1 является классом 'list', если он numpy?

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Как писал Патрик Артнер . Если list2 содержит несколько массивов, вы можете использовать:

   def string_list_to_int_list(l):
       return l.astype(float)

   converted_list = list(map(string_list_to_int_list, list2))
0 голосов
/ 07 сентября 2018

list1 - это list, который содержит 1 элемент, который является numpy.array, который содержит несколько floats64.

list2 - это list, который содержит 1 элемент, который является list, который содержит несколько strings (это выглядит очень похоже на floats).

Вы можете конвертировать их так:

import numpy as np

# list of list of strings that look like floats
list2 = [['-0.03803351', '0.07370875', '0.03514577', '-0.07568369', '-0.07438357']]

# list of np.arrays that contain float64's
data = list([np.array(list(map(np.float64, list2[0])))])  # python 3.x

print(data)
print(type(data))
print(type(data[0]))
print(type(data[0][0]))

Выход:

[array([-0.03803351,  0.07370875,  0.03514577, -0.07568369, -0.07438357])]
<type 'list'>
<type 'numpy.ndarray'>
<type 'numpy.float64'>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...