numpyで苦労しているPythonの初心者、誰かが私を助けてくれることを願っています、ありがとう!
from numpy import *
A = matrix('1.0 2.0; 3.0 4.0')
B = matrix('5.0 6.0')
C = matrix('1.0 2.0; 3.0 4.0; 5.0 6.0')
print "A=",A
print "B=",B
print "C=",C
結果:
A= [[ 1. 2.]
[ 3. 4.]]
B= [[ 5. 6.]]
C= [[ 1. 2.]
[ 3. 4.]
[ 5. 6.]]
質問:matlab C=[A;B]
のように、AとBを使用してCを生成する方法
つかいます - numpy.concatenate
:
>>> import numpy as np
>>> np.concatenate((A, B))
matrix([[ 1., 2.],
[ 3., 4.],
[ 5., 6.]])
>>> np.vstack((A,B))
matrix([[ 1., 2.],
[ 3., 4.],
[ 5., 6.]])
既存の配列Cで作業する場合は、インプレースで実行できます。
>>> from numpy import *
>>> A = matrix('1.0 2.0; 3.0 4.0')
>>> B = matrix('5.0 6.0')
>>> shA=A.shape
>>> shA
(2L, 2L)
>>> shB=B.shape
>>> shB
(1L, 2L)
>>> C = zeros((shA[0]+shB[0],shA[1]))
>>> C
array([[ 0., 0.],
[ 0., 0.],
[ 0., 0.]])
>>> C[:shA[0]]
array([[ 0., 0.],
[ 0., 0.]])
>>> C[:shA[0]]=A
>>> C[shA[0]:shB[0]]=B
>>> C
array([[ 1., 2.],
[ 3., 4.],
[ 0., 0.]])
>>> C[shA[0]:shB[0]+shA[0]]
array([[ 0., 0.]])
>>> C[shA[0]:shB[0]+shA[0]]=B
>>> C
array([[ 1., 2.],
[ 3., 4.],
[ 5., 6.]])