2013-11-24 20 views
13

numaralı yeni matrislerin iki matrisini birleştirmek için nasıl uyuştuğunu umar, umarım birisi bana yardımcı olabilir, teşekkürler!Python, Python'da yeni olan,

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 

sonuçları:

A= [[ 1. 2.] 
    [ 3. 4.]] 
B= [[ 5. 6.]] 
C= [[ 1. 2.] 
    [ 3. 4.] 
    [ 5. 6.]] 

Soru: MATLAB C=[A;B] gibi, C elde etmek için A ve B nasıl?

cevap

22

Kullanım numpy.concatenate:

>>> import numpy as np 
>>> np.concatenate((A, B)) 
matrix([[ 1., 2.], 
     [ 3., 4.], 
     [ 5., 6.]]) 
8

kullanabilirsiniz numpy.vstack:

>>> np.vstack((A,B)) 
matrix([[ 1., 2.], 
     [ 3., 4.], 
     [ 5., 6.]]) 
1

Sen varolan dizi C üzerinde çalışmak istiyorsanız, INPLACE yapabileceğini:

>>> 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.]]) 
İlgili konular