#python #arrays #numpy
#python #массивы #numpy
Вопрос:
я сделал этот код :
from scitools.std import *
npoints=10
vectorpoint=array(random.uniform(-1,1,[1,2]))
experiment=array(random.uniform(-1,1,[npoints,2]))
print("vectorpoint=",vectorpoint)
print("experiment=",experiment)
print(vectorpoint.shape)
print(experiment.shape)
который работает нормально.
Я хотел спросить, можно ли записать массив «experiment» другим способом, например, например, «experiment= [vectorpoint,npoints]».Я хочу использовать массив векторных точек.
(Я не хочу снова и снова писать «random.uniform(-1,1,[npoints,2])».
Ответ №1:
Если вы хотите experiment
быть массивом со npoints
строками, которые все равны vectorpoint
, вы можете использовать
experiment = vstack([vectorpoint] * npoints)
Если вы хотите experiment
, чтобы npoints
строки были независимо сгенерированы random.uniform()
, вам нужно снова вызвать последнюю функцию, поскольку vectorpoint
содержит только числовые значения, возвращаемые, random.uniform()
и никакой информации о том, как она была сгенерирована. Если повторение вас беспокоит, вы можете переместить его в функцию:
def uniform(lines):
return random.uniform(-1, 1, [lines, 2])
(Обратите внимание, что ваше использование array
является избыточным — возвращаемое значение random.uniform()
уже является массивом.)