Добавление массива к большему, а затем его возврат - PullRequest
0 голосов
/ 04 апреля 2019

Моя цель - создать функцию, которая принимает входной файл CSV. Из этого CSV-файла я хочу, чтобы он создал массив, в котором данные в первом столбце - это координата x, а данные во втором столбце - это координата y. Для каждой строки в файле данных я хочу добавить данные в массив.

import numpy as np 

doc = open("d.csv")
headers = doc.readline()


def generateArray(doc):

    for theData in doc: 
        editDocument = theData.strip().split(",")
        x = splitDocument[0]
        y = splitDocument[1]
        createArray = np.array((x, y))
    return createArray 


print(generateArray(doc))

Когда я возвращаю его, он просто возвращает последнюю строку файла CSV, когда на самом деле я хочу, чтобы все созданные массивы возвращались. Функции, которые я использовал, например .append (), дают мне ошибку, говорящую, что "append нельзя использовать в 0-мерном массиве". Любые предложения о том, как я могу отредактировать свой код, чтобы получить возвращаемые массивы.

1 Ответ

0 голосов
/ 04 апреля 2019

В качестве быстрого (с точки зрения изменения вашего кода) решения используйте генератор:

def generateArray(doc):
    for theData in doc: 
        editDocument = theData.strip().split(",")
        x = splitDocument[0]
        y = splitDocument[1]
        createArray = [x, y]
        yield createArray

arr = np.array(list(generateArray(doc)))
print(arr)

В качестве лучшего решения я бы посоветовал вам проверить, как использовать np.loadtxt .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...