Eu tenho uma matriz numpy psi
de formas (3.1000)
psi.__class__
Out[115]: numpy.ndarray
psi.shape
Out[116]: (3, 1000)
Quero preencher parcialmente psi
com outro arrayb
b.__class__
Out[113]: numpy.ndarray
b.shape
Out[114]: (3, 500)
Posso fazer isso com um loop:
for n in range(3):
psi[n][:500] = b[n]
Mas parece-me que deveria haver uma maneira de fazer isso de forma mais direta. Mas por exemplo
psi[:][:500] = b
falha com erro
Traceback (most recent call last):
File "<ipython-input-120-6b23082d9d6b>", line 1, in <module>
psi[:][:500] = b
ValueError: could not broadcast input array from shape (3,500) into shape (3,1000)
Também tenho algumas variações do tema, com resultados semelhantes. Isso parece bastante simples. Alguma ideia de como fazer isso?
Você pode usar:
Ou, se
n
(=3) no seu loop não corresponder à primeira dimensão deb
:Comparando as duas abordagens (
psi1
com o loop,psi2
como atribuição vetorial):