Ряд случайных функций создают противоречивые формы для данного аргумента - PullRequest
0 голосов
/ 01 сентября 2018

Я обнаружил странное поведение генераторов случайных чисел numpy . Кажется, что они не генерируют согласованные формы матрицы для данного аргумента. Это просто супер раздражает потратить лишнюю строку на конверсию, которую я хотел бы обойти. Как я могу сказать matlib.randn напрямую для создания вектора размером (200,)?

import numpy as np
A = np.zeros((200,))
B = np.matlib.randn((200,))
print(A.shape)    # prints (200,)
print(B.shape)    # prints (1, 200)

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018

B - это матрица объект, а не ndarray . Матричный объект не имеет одномерных эквивалентных объектов и больше не рекомендуется использовать, поэтому вместо него следует использовать np.random.random.

0 голосов
/ 01 сентября 2018

Используйте numpy.random вместо numpy.matlib:

numpy.random.randn(200).shape # prints (200,)

numpy.random.randn может создать любую фигуру, тогда как numpy.matlib.randn всегда создает матрицу.

...