⑴ python萌新求救!!創建一個二維矩陣~~
def aaa(n):
tmp=[]
for x in range(n):
if x==0 or x==n-1:
tmp.append([1]*n)
else:
tmp.append([1]+[0]*(n-2)+[1])
return tmp
if __name__=='__main__':
import pprint
pprint.pprint(aaa(6))
⑵ Python表示矩陣的方法分析
Python表示矩陣的方法分析
本文實例講述了Python表示矩陣的方法。分享給大家供大家參考,具體如下:
在c語言中,表示個「整型3行4列」的矩陣,可以這樣聲明:int a[3][4];在python中一不能聲明變數int,二不能列出維數。可以利用列表中夾帶列表形式表示。例如:
表示矩陣 ,可以這樣:
count = 1
a = []
for i in range(0, 3):
tmp = []
for j in range(0, 3):
tmp.append(count)
count += 1
a.append(tmp)
print a
結果:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
但是注意一點:初始化(賦值全部為0時),下面是錯誤的!!
tmp = []
for j in range(0, 3):
tmp.append(0)
a = []
for i in range(0, 3):
a.append(tmp)
print a
結果:
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
原因:這樣的列表tmp為同一個,改變任意行,其他行都會給隨著改變,千萬注意!!,下面正確:
a = []
for i in range(0, 3):
tmp = []
for j in range(0, 3):
tmp.append(0)
a.append(tmp)
print a
⑶ 在python中,如何通過鍵盤輸入,給矩陣的每一個元素賦值
我也研究了很久,終於發現問題了.
函數沒錯.
錯在定義 earth 的時候.
earth=[[0]*n]*n#doesnotwork
earth=[[0,0,0],[0,0,0],[0,0,0]]#work
⑷ python 矩陣賦值問題
問題出在 C=[[0]*n]*m 假若n=2 m=2 C=[[0,0],[0,0]] 用id函數查看C[0]和C[1]的id值是一樣的。在內存中享有共同的區域,導致 列黏在一起。 列表* m的方式起始應該屬於淺復制,得到的列表 在內存中占同一空間,即id值 一樣。你可以看一下淺復制和深復制
把 C=[[0]*n]*m 改為 empty_like(A) 就可以啦
⑸ python 怎麼實現矩陣運算
1.numpy的導入和使用
data1=mat(zeros((
)))
#創建一個3*3的零矩陣,矩陣這里zeros函數的參數是一個tuple類型(3,3)
data2=mat(ones((
)))
#創建一個2*4的1矩陣,默認是浮點型的數據,如果需要時int類型,可以使用dtype=int
data3=mat(random.rand(
))
#這里的random模塊使用的是numpy中的random模塊,random.rand(2,2)創建的是一個二維數組,需要將其轉換成#matrix
data4=mat(random.randint(
10
,size=(
)))
#生成一個3*3的0-10之間的隨機整數矩陣,如果需要指定下界則可以多加一個參數
data5=mat(random.randint(
,size=(
))
#產生一個2-8之間的隨機整數矩陣
data6=mat(eye(
,dtype=
int
))
#產生一個2*2的對角矩陣
a1=[
]; a2=mat(diag(a1))
#生成一個對角線為1、2、3的對角矩陣