Как автоматически создавать массивы numpy? - PullRequest
0 голосов
/ 25 июня 2019

Я хотел создать массивы с помощью цикла for, чтобы автоматически назначать имена массивов.

Но, используя цикл for, он не работал и создание словаря с numpy.array () в нем тоже не работает. В настоящее время у меня нет больше идей ... Я не очень безопасен в работе с Python.

   import numpy as np

   for file_name in folder:
       file_name = np.array()
       file_name.extend((blabla, blabla1))

Я ожидал получить массивы с автоматически назначенными именами, например file_name1, file_name2, ... Но я получил совет: «переопределено file_name определено выше без использования», и результат был в строке file_name = np.array()

TypeError: array () отсутствует обязательный аргумент 'object' (pos 1) ...

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

Как сказал @ Марк Мейер в комментарии, вы должны использовать словарь (dict в Python), установив file_name в качестве ключа.

Согласно вашей ошибке, когда вы создаетемассив Numpy, вы должны предоставить iterable (например, list).

Например:

>>> folder = ['file1', 'file2']
>>> blabla = 0
>>> blabla1 = 1

>>> {f: np.array((blabla, blabla1)) for f in folder}
{'file1': array([0, 1]), 'file2': array([0, 1])}
0 голосов
/ 25 июня 2019

Вы можете сделать это с помощью globals(), если вы действительно хотите использовать строки в качестве именованных переменных.

globals()[filename] = np.array()

Пример:

>>> globals()['test'] = 1
>>> test
1

Конечно, это заполняет глобальное пространство имен,В противном случае вы можете использовать locals().

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