Неизвестное количество строк
Одним из способов является формирование списка списков, а затем преобразование в массив numpy
за одну операцию:
final = []
# x is some generator
for item in x:
final.append(x)
A = np.array(x)
Или, что более элегантно, с учетом генератора x
:
A = np.array(list(x))
Это решение экономит время, но неэффективно с памятью.
Известное количество строк
Операции добавления на numpy
массивах дороги и не рекомендуются.Если вы заранее знаете размер конечного массива, вы можете создать пустой (или нулевой) массив нужного вам размера, а затем заполнить его значениями.Например:
A = np.zeros((10, 2))
A[0] = [1, 2]
Или в цикле, с тривиальным присваиванием для демонстрации синтаксиса:
A = np.zeros((2, 2))
# in reality, x will be some generator whose length you know in advance
x = [[1, 2], [3, 4]]
for idx, item in enumerate(x):
A[idx] = item
print(A)
array([[ 1., 2.],
[ 3., 4.]])