Как я могу изменить Numpy массив от (100,) до (250 100) - PullRequest
0 голосов
/ 21 ноября 2018

Представьте, что вы создали массив с 100 измерениями, а затем что-то вычислили и заполнили этот массив.по какой-то причине вы не создали 2d массив, что не так с этим вопросом, что вы хотите назначить другое измерение этим данным, с таким обоснованием, что, например, 250 выборок должны иметь эти вычисленные данные? !!

Я искал это, но я не мог найти никакого решения.Возможно, я не ищу правильное ключевое слово!

На самом деле я хочу изменить массив значений от (100,) до (250,100).Я прочитал эту ссылку и пару других ссылок, но мне это не помогло.

Я также попробовал этот способ:

numpyarray = (100,)
transformed_numpyarray = np.reshape(numpyarray,(100,-1)).T

, который дает мне этот вывод:

(1, 100)

но я действительно не хочу 1 в качестве первого элемента 2d массива.что я пытаюсь сделать, так это конвертировать в (,100) или хотя бы что-то вроде (250,100).«250» - это постоянное число, которое я уже знаю, поэтому я хочу сказать, например, для 250 образцов с размером 100.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Я все еще не понимаю, что вы пытаетесь сделать.Пока я могу представить две альтернативы - изменить форму и повторить.Для иллюстрации:

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

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

In [151]: np.repeat(x[None,:], 4, axis=0)
Out[151]: 
array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15],
       [ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15],
       [ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15],
       [ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15]])
0 голосов
/ 21 ноября 2018
Массивы

numpy имеют статический размер, вы не можете иметь массив с переменной формой.Если вы не знаете заранее, сколько образцов у вас будет, вы можете постепенно добавлять их с помощью vstack:

In [4]: numpyarray.shape                                                        
Out[4]: (3, 4)

In [5]: new_sample.shape                                                        
Out[5]: (4,)

In [6]: numpyarray = np.vstack([numpyarray, new_sample])                        

In [7]: numpyarray.shape                                                       
Out[7]: (4, 4)

, вы также можете сначала определить размер, создав массив, полный нулей, а затем постепенно заполнятьэто с образцами.

numpyarray = np.zeros((250,100))
...
numpyarray[i] = new_sample
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...