python (numpy) - еще один способ создания массива (из другого массива) - PullRequest
1 голос
/ 28 октября 2011

я сделал этот код:

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)

, который работает отлично.Я хотел спросить, может ли массив «эксперимент» быть записан по-другому, например, «эксперимент = [vectorpoint, npoints]». Я хочу использовать массив vectorpoint.

(я нехочу снова написать "random.uniform (-1,1, [npoints, 2])".

1 Ответ

1 голос
/ 28 октября 2011

Если вы хотите, чтобы 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() уже является массивом.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...