自己程式設計矩陣乘法中遇到的問題 python

2021-10-05 09:55:44 字數 1716 閱讀 2643

typeerror: data type not understood

在構造矩陣的時候呈現上面的問題,主要是

a = np.ones(

(x+1

,y+1

))

錯誤的用法是

a = np.ones(x+1,y+1)

import numpy as np

x,y =

map(

int,

input()

.split())

#實現了在控制台輸入的功能

a = np.ones(

(x+1

,y+1))

print

('the numbers in a '

,a)

實現了通過輸入來控制矩陣的維度

參考了:

python中使用numpy建立多維陣列可能遇見的錯誤(data type not understood)

python生成二維矩陣的方法

實現自己程式設計的矩陣乘法,以及numpy自帶的矩陣乘法,矩陣的加減法

import numpy as np

# x,y = map(int,input().split())

a = np.array([[

3,4,

3,2]

,[6,

7,6,

4],[

1,9,

5,7]

])#3*4

b = np.array([[

3,8,

3],[

6,7,

7],[

6,1,

8],[

6,5,

7]])

#4*3

len_a = a.shape[0]

#3len_b = b.shape[1]

#3tr = a.t#矩陣的轉置

print

("transpose\n"

,tr)

ma = np.array(

range(1

,10))

.reshape(3,

3)nb = np.array(

range(5

,14))

.reshape(3,

3)print

('addition:\n'

,ma+nb)

print

('subtraction\n'

,nb-ma)

c = np.zeros(

(len_a,len_b)

)#3*3

for i in

range

(len_a)

:for j in

range

(len_b)

:for r in

range

(a.shape[1]

):c[i]

[j]+= a[i]

[r]*b[r]

[j]d = np.dot(a,b)

#a*b

print

(c)print

(d)

主要的問題就是關於for和range的組合與獲取shape某個元素出現的問題,shape如果有兩個元素,第乙個是從零開始,並且其必須要用方括號呼叫

矩陣的乘法 程式設計心得

今天做了乙個關於矩陣乘法的程式,雖然說程式設計的思想比較好理解,但是也確實遇到了一些麻煩。include int main 這裡儲存的結果矩陣,注意,要初始化為0.也可以這樣寫int c 2 4 int i,j,k printf please input a 2 3 matrix n for i 0...

Numpy中的矩陣乘法

對於numpy.array multiply 意思是對應位置的元素相乘 如果希望對array物件進行嚴格的矩陣乘法,必須使用numpy.dot 或者numpy.matmul 函式,這兩者是等效的 對於matrix物件上情況是相反的,必須使用np.multiply 函式。因為 過載矩陣運算規則只限於m...

程式設計中遇到的問題(二)

1將資料庫中表通過sqldataadapter儲存到datatable就可以用datatable.select 在記憶體中查詢符合條件的行,不用讀資料庫就可以查詢。昨天寫了乙個到資料庫查詢重複主鍵的 結果主鍵衝突在datatable中新增行時就被丟擲了,白寫了一大堆。2fileupload控制項獲取...