python的numpy創造矩陣
from numpy import mat
import numpy as np
data1=mat(zeros((3,3))); #創建一個3*3的零矩陣,矩陣這裏zeros函數的參數是一個tuple類型(3,3)
data2=mat(ones((2,4))); #創建一個2*4的1矩陣,默認是浮點型的數據,
data3=mat(random.rand(2,2)); #這裏的random模塊使用的是numpy中的random模塊,random.rand(2,2) 創建的是一個二維數組,
data4=mat(random.randint(10,size=(3,3))); #生成一個3*3的0-10之間的隨機整數矩陣,如果需要指定下界 則可以多加一個參數
data5=mat(random.randint(2,8,size=(2,5)); #產生一個2-8之間的隨機整數矩陣
data6=mat(eye(2,2,dtype=int)); #產生一個2*2的對角矩陣
a1=[1,2,3];
a2=mat(diag(a1)); #生成一個對角線爲1、2、3的對角矩陣
手動創造矩陣
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