मैं पायथन/नम्पी के साथ काम कर रहा हूं और मैं संबंधित तत्वों को जोड़कर मैट्रिक्स की एक पंक्ति में एक पंक्ति वेक्टर जोड़ना चाहता हूं और मैट्रिक्स को नई पंक्ति के साथ अपडेट करना चाहता हूं। उदाहरण के लिए, मेरे पास निम्नलिखित संख्यात्मक सरणी A = array([[1,2,3],[4,5,6], [7,8,9]) और वेक्टर v =[1,2,3] हैं। तो मैं निम्नलिखित करना चाहता हूँ:

A1=v+r1=array([[2,4,6],[4,5,6], [7,8,9])
A2=v+r2=array([[1,2,3],[5,7,9], [7,8,9])
A3=v+r3=array([[1,2,3],[4,5,6], [8,10,12])

इसे हासिल करने में किसी भी मदद की सराहना की जाती है।

2
Bran 19 मार्च 2020, 01:38

1 उत्तर

सबसे बढ़िया उत्तर
In [74]: A = np.arange(1,10).reshape(3,3); v = np.arange(1,4)                                                        
In [75]: A                                                                                                           
Out[75]: 
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
In [77]: v                                                                                                           
Out[77]: array([1, 2, 3])

A को एक (3,3,3) तक विस्तृत करें:

In [78]: A[None,:,:].repeat(3,0)                                                                                     
Out[78]: 
array([[[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]],

       [[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]],

       [[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]]])

v के साथ भी ऐसा ही करें:

In [79]: np.eye(3)                                                                                                   
Out[79]: 
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])
In [80]: np.eye(3)[:,:,None]*v                                                                                       
Out[80]: 
array([[[1., 2., 3.],
        [0., 0., 0.],
        [0., 0., 0.]],

       [[0., 0., 0.],
        [1., 2., 3.],
        [0., 0., 0.]],

       [[0., 0., 0.],
        [0., 0., 0.],
        [1., 2., 3.]]])

दो जोड़ें:

In [81]: _78+_80                                                                                                     
Out[81]: 
array([[[ 2.,  4.,  6.],
        [ 4.,  5.,  6.],
        [ 7.,  8.,  9.]],

       [[ 1.,  2.,  3.],
        [ 5.,  7.,  9.],
        [ 7.,  8.,  9.]],

       [[ 1.,  2.,  3.],
        [ 4.,  5.,  6.],
        [ 8., 10., 12.]]])

या एक चरण में:

A+np.eye(3)[:,:,None]*v  
1
hpaulj 19 मार्च 2020, 00:48