Вот пример, который вы можете использовать для справки.
Я генерирую игрушечные данные с именем toy
, затем я делаю n
случайные значения, используя np.random.uniform
, и называю его randos
, затем я умножаю эти два объекта, чтобы сформировать out
, используя цифровую трансляцию. Вы также можете выполнить это умножение в цикле (фактически, в том же самом, в котором вы сохраняете): в зависимости от размера входного массива он может быть очень интенсивным, как я уже писал. Более полный ответ, вероятно, зависит от формы ваших входных данных.
import numpy as np
toy = np.random.random(size=(2,2)) # a toy input array
n = 100 # number of random values
randos = np.random.uniform(-3,7,size=n) # generate 100 uniform randoms
# now multiply all elements in toy by the randoms in randos
out = toy[None,...]*randos[...,None,None] # this depends on the shape.
# this will work only if toy has two dimensions. Otherwise requires modification
# it will take a lot of memory... 100*toy.nbytes worth
# now save in the loop..
for i,o in enumerate(out):
name = 'P{}D1'.format(str(i+1))
np.savetxt(name,o,delimiter=",")
# a second way without the broadcasting (slow, better on memory)
# more like 2*toy.nbytes
#for i,r in enumerate(randos):
# name = 'P{}D1'.format(str(i+1))
# np.savetxt(name,r*toy,delimiter=",")