Создание столбцов после преобразования списка в массив - PullRequest
0 голосов
/ 18 сентября 2018

Мой вопрос: как мне преобразовать первые четыре столбца в число с плавающей точкой, а последний столбец - в строку?Кикер в том, что я не могу использовать Панд или CSV, я могу использовать только NumPy.Как бы я пошел по этому поводу?Я преобразовал список в массив и в настоящее время отображает:

'5.0,3.0,1.6,0.2, Iris-setosa'

Мне нужно добавить правильные заголовки столбцовКроме того, любой вклад будет оценен.Спасибо!

import numpy as np

training_data = open("C:\Users\Angel\Downloads\iris-training-data.csv")
training_data_list = []

for elements in training_data:
    training_data_list.append(elements)


training_data_array = np.array(training_data_list)

print "The shape is {}\n".format(training_data_array.shape)

print "The visual array is: {}".format(training_data_array)

Ответы [ 2 ]

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

AFAIK, фундаментальная часть numpy состоит в том, что его массивы однородны (каждый элемент имеет одинаковый тип).

Если вам нужна дополнительная строка (например, заголовки) или столбец (как ваш последний столбец, представляющий собой строку) другого типа, вам придется хранить их в отдельных массивах.

Вы можете преобразовать числовую часть вашего ввода из строки в число с плавающей точкой, используя метод astype, например ::

string_col = traninig_data_array[:,4] # the last column
numbers = training_data_array[:,:4].astype(dtype=np.float64)
0 голосов
/ 18 сентября 2018

Я думаю, это то, что вы ищете

import csv
with open('path_to_csv', newline='') as file:
data = csv.reader(file, delimiter=' ')
for row in data:
    row = row[0].split(',')
    r = [float(item) for item in row[:4]]
    r.append(str(row[4]))
    print(r)

Это мой вывод, но я запустил его для 9 столбцов, а не для 5. Но это тот же набор данных. Код, который я выложил, будет работать для вас.

[7.2, 0.805555556, 3.0, 0.416666667, 5.8, 0.813559322, 1.6, 0.625, 'virginica']
[7.4, 0.861111111, 2.8, 0.333333333, 6.1, 0.86440678, 1.9, 0.75, 'virginica']
[7.9, 0.9999, 3.8, 0.75, 6.4, 0.915254237, 2.0, 0.791666667, 'virginica']
[6.4, 0.583333333, 2.8, 0.333333333, 5.6, 0.779661017, 2.2, 0.875, 'virginica']
[6.3, 0.555555556, 2.8, 0.333333333, 5.1, 0.694915254, 1.5, 0.583333333, 'virginica']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...