2017-02-02 6 views
2

Предположим, вы хотите создать массив 2D numpy и хотите заполнить его последовательными целыми числами. Какие существуют варианты?Numpy: заполнение массива 2D numpy с последовательными целыми числами

Пример:

import numpy 
a=numpy.array([[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14]]) 

В этом случае, конечно, я мог бы использовать range(15) для определения верхней границы, но как сказать numpy, чтобы создать новую строку после 5 значений? Я ищу общее решение, так как моя настоящая проблема вращается вокруг 2D-массива с 466 столбцами и 365 строками.

+3

Вы можете сделать 'а = np.arange (15) .reshape (3,5)' для простого примера, в общем случае, 'а = np.arange (466 * 365) .reshape (466365) 'должен работать – EdChum

ответ

5

Просто используйте .reshape на обычном звонке np.arange, который просто изменит ваш массив без изменения его данных.

In[101]: np.arange(15).reshape(3, 5) 
Out[101]: 
array([[ 0, 1, 2, 3, 4], 
     [ 5, 6, 7, 8, 9], 
     [10, 11, 12, 13, 14]]) 

In[102]: np.arange(466*365).reshape(466, 365) 
Out[102]: 
array([[  0,  1,  2, ..., 362, 363, 364], 
     [ 365, 366, 367, ..., 727, 728, 729], 
     [ 730, 731, 732, ..., 1092, 1093, 1094], 
     ..., 
     [168995, 168996, 168997, ..., 169357, 169358, 169359], 
     [169360, 169361, 169362, ..., 169722, 169723, 169724], 
     [169725, 169726, 169727, ..., 170087, 170088, 170089]]) 
Смежные вопросы