當前位置:首頁 » 編程語言 » pythonarray與matrix

pythonarray與matrix

發布時間: 2023-08-23 03:12:29

python自帶及pandas、numpy數據結構(一)

1.python自帶數據結構:序列(如list)、映射(如字典)、集合(set)。
以下只介紹序列中的list:
創建list:
list1 = []
list1 = [1,2,3,4,5,6,7,8,9] #逗號隔開
list2 = [[1,2],[3,4],[5,6],[7,8]] #list2長度(len(list2))為2,list2[0] = [1,2]
liststring = list(「thisisalist」) #只用於創建字元串列表
索引list:
e = list1[0] #下標從零開始,用中括弧
分片list:
es = list1[0:3]
es = list1[0:9:2] #步長在第二個冒號後
list拼接(list1.append(obj)、加運算及乘運算):

list長度:

list每個元素乘一個數值:
list2 = numpy.dot(list2,2)
list類似矩陣相乘(每個元素對應相乘取和):
list3 = numpy.dot(list1,list1)
#要求相乘的兩個list長度相同
list3 = numpy.dot(list2,list22)
#要求numpy.shape(list2)和numpy.shape(list22)滿足「左行等於右列」的矩陣相乘條件,相乘結果numpy.shape(list3)滿足「左列右行」

2.numpy數據結構:

Array:
產生array:
data=np.array([[1, 9, 6], [2, 8, 5], [3, 7, 4]])
data=np.array(list1)
data1 = np.zeros(5) #data1.shape = (5,),5列
data1 = np.eye(5)
索引array:
datacut = data[0,2] #取第零行第二列,此處是6
切片array:
datacut = data[0:2,2] # array([6, 5])
array長度:
data.shape
data.size
np.shape(data)
np.size(data)
len(data)
array拼接:
#括弧內也有一個括弧(中括弧或者小括弧)!
d = np.concatenate((data,data))
d = np.concatenate((data,data),axis = 1) #對應行拼接
array加法:逐個相加
array乘法:
d = data data #逐個相乘
d = np.dot(data,data) #矩陣相乘
d = data
3 #每個元素乘3
d = np.dot(data,3) #每個元素乘3
array矩陣運算:
取逆 : np.linalg.inv(data)
轉置:data.T
所有元素求和 : np.sum(data)
生成隨機數:np.random.normal(loc=0, scale=10, size=None)
生成標准正態分布隨機數組:np.random.normal(size=(4,4))
生成二維隨機數組:
np.random.multivariate_normal([0,0],np.eye(2))
生成范圍在0到1之間的隨機矩陣(M,N):
np.random.randint(0,2,(M,N))

Matrix:
創建matrix:
mat1 = np.mat([[1, 2, 3], [4, 5, 6]])
mat1 = np.mat(list)
mat1 = np.mat(data)
matrix是二維的,所有+,-,*都是矩陣操作。
matrix索引和分列:
mat1[0:2,1]
matrix轉置:
np.transpose(mat1)
mat1.transpose()
matrix拼接:
np.concatenate([mat1,mat1])
np.concatenate([mat1,mat1],axis = 1)

numpy數據結構總結:對於numpy中的數據結構的操作方法基本相同:
創建:np.mat(list),np.array(list)
矩陣乘:np.dot(x,y)
轉置:x.T or np.transpose(x)
拼接:np.concatenate([x,y],axis = 1)
索引:mat[0:1,4],ary[0:1,4]

3.pandas數據結構:
Series:
創建series:
s = pd.Series([[1,2,3],[4,5,6]],index = [『a』,『b』])
索引series:
s1 = s[『b』]
拼接series:
pd.concat([s1,s1],axis = 1) #也可使用s.append(s)

DataFrame:
創建DaraFrame:
df = pd.DataFrame([[1,2,3],[1,2,3]],index = ['a','b'],columns = ['x','y','z'])
df取某一列:
dfc1 =df.x
dfc1 = df[『x』]
dfc2 = df.iloc[:,0] #用.iloc方括弧里是數字而不是column名!
dfc2 = df.iloc[:,0:3]
df取某一行:
dfr1 = df.iloc[0]
df1 = df.iloc[0:2]
df1 = df[0:2] #這種方法只能用於取一個區間
df取某個值:
dfc2 = df.iloc[0,0]
dfc2 = df.iloc[0:2,0:3]

㈡ python中怎麼將一個數據集中的每條數據轉換成相應的矩陣

python的一個很重要的包是numpy包,這個包可以很方便的做數據科學計算。numpy中有很多方法,array,matrix,對於數據集的每一條數據,可以通過matrix函數來將其轉換為矩陣形式,並且還有reshape方法,可以調整矩陣的行和列。

㈢ python怎麼將數組轉換為矩陣

python將數組轉換為矩陣,方法如下:

數組轉換矩陣:戚歷差
A = mat(s[])

㈣ python中稀疏矩陣的怎麼用numpy處理

NumPy是一個關於矩陣運算的庫,熟悉Matlab的都應該清楚,這個庫就是讓python能夠進行矩陣話的操作,而不用去寫循環操作。
下面對numpy中的操作進行總結。
numpy包含兩種基本的數據類型:數組和矩陣。
數組(Arrays)
>>> from numpy import *>>> a1=array([1,1,1]) #定義一個數組>>> a2=array([2,2,2])>>> a1+a2 #對於元素相加array([3, 3, 3])>>> a1*2 #乘一個數array([2, 2, 2])##>>> a1=array([1,2,3])>>> a1
array([1, 2, 3])>>> a1**3 #表示對數組中的每個數做平方array([ 1, 8, 27])##取值,注意的是它是以0為開始坐標,不matlab不同>>> a1[1]2##定義多維數組>>> a3=array([[1,2,3],[4,5,6]])>>> a3
array([[1, 2, 3],
[4, 5, 6]])>>> a3[0] #取出第一行的數據array([1, 2, 3])>>> a3[0,0] #第一行第一個數據1>>> a3[0][0] #也可用這種方式1##數組點乘,相當於matlab點乘操作>>> a1=array([1,2,3])>>> a2=array([4,5,6])>>> a1*a2
array([ 4, 10, 18])

Numpy有許多的創建數組的函數:
import numpy as np

a = np.zeros((2,2)) # Create an array of all zerosprint a # Prints "[[ 0. 0.]
# [ 0. 0.]]"b = np.ones((1,2)) # Create an array of all onesprint b # Prints "[[ 1. 1.]]"c = np.full((2,2), 7) # Create a constant arrayprint c # Prints "[[ 7. 7.]
# [ 7. 7.]]"d = np.eye(2) # Create a 2x2 identity matrixprint d # Prints "[[ 1. 0.]
# [ 0. 1.]]"e = np.random.random((2,2)) # Create an array filled with random valuesprint e # Might print "[[ 0.91940167 0.08143941]
# [ 0.68744134 0.87236687]]"

數組索引(Array indexing)
矩陣
矩陣的操作與Matlab語言有很多的相關性。
#創建矩陣
>>> m=mat([1,2,3])
>>> m
matrix([[1, 2, 3]])

#取值
>>> m[0] #取一行
matrix([[1, 2, 3]])
>>> m[0,1] #第一行,第2個數據2>>> m[0][1] #注意不能像數組那樣取值了
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
File "/usr/lib64/python2.7/site-packages/numpy/matrixlib/defmatrix.py", line 305, in __getitem__
out = N.ndarray.__getitem__(self, index)
IndexError: index 1 is out of bounds for axis 0 with size 1#將Python的列表轉換成NumPy的矩陣
>>> list=[1,2,3]
>>> mat(list)
matrix([[1, 2, 3]])

#矩陣相乘
>>> m1=mat([1,2,3]) #1行3列
>>> m2=mat([4,5,6])
>>> m1*m2.T #注意左列與右行相等 m2.T為轉置操作
matrix([[32]])
>>> multiply(m1,m2) #執行點乘操作,要使用函數,特別注意
matrix([[ 4, 10, 18]])

#排序
>>> m=mat([[2,5,1],[4,6,2]]) #創建2行3列矩陣
>>> m
matrix([[2, 5, 1],
[4, 6, 2]])
>>> m.sort() #對每一行進行排序
>>> m
matrix([[1, 2, 5],
[2, 4, 6]])

>>> m.shape #獲得矩陣的行列數
(2, 3)
>>> m.shape[0] #獲得矩陣的行數2>>> m.shape[1] #獲得矩陣的列數3#索引取值
>>> m[1,:] #取得第一行的所有元素
matrix([[2, 4, 6]])
>>> m[1,0:1] #第一行第0個元素,注意左閉右開
matrix([[2]])
>>> m[1,0:3]
matrix([[2, 4, 6]])
>>> m[1,0:2]
matrix([[2, 4]])35363738394

擴展矩陣函數tile()
例如,要計算[0,0,0]到一個多維矩陣中每個點的距離,則要將[0,0,0]進行擴展。
tile(inX, (i,j)) ;i是擴展個數,j是擴展長度
實例如下:
>>>x=mat([0,0,0])
>>> x
matrix([[0, 0, 0]])
>>> tile(x,(3,1)) #即將x擴展3個,j=1,表示其列數不變
matrix([[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])
>>> tile(x,(2,2)) #x擴展2次,j=2,橫向擴展
matrix([[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0]])1234567891011121314

㈤ Python,的numpy模塊中有沒有 階乘函數

有階乘函數,Numpy中,mat必須是2維的,但是array可以是多維的(1D,2D,3D····ND). Matrix是Array的一個小的分支,包含於Array。所以matrix 擁有array的所有特性。

在numpy中matrix的主要優勢是:相對簡單的乘法運算符號。例如,a和b是兩個matrices,那麼a*b,就是矩陣積。

若a=mat([1,2,3])是矩陣,則 a.A 則轉換成了數組,反之,a.M則轉換成了矩陣。

(5)pythonarray與matrix擴展閱讀:

常用的Numpy運算:

取矩陣中的某一行ss[1,:]或該行的某兩列ss[1,0:2]

將數組轉換成矩陣randMat=mat(random.rand(4,4))

矩陣求逆randMat.I

單位陣eye(4)

零矩陣zeros((x,y))建立x行y列的零矩陣。

最大值和最小值a.max(),a.min(),而a.max(0)表示按列選取每列的最大值。最大/小元素的下標a.argmax(),a.argmin()

#作為方法x.sum() #所有元素相加x.sum(axis=0) #按列相加x.sum(axis=1) #按行相加#作為函數sum(a,axis=0)ss.mean()

mean(a,axis=0(或1)) #按列或行求均值var(a)var(a,axis=0(或1)) #按列或行求方差。

std(a)std(a,axis=0(或1)) #按列或行求標准差ss.T或ss.transpose() #轉置。



㈥ python如何輸入矩陣

使用numpy創建矩陣有2種方法,一種是使用numpy庫的matrix直接創建,另一種則是使用array來創建。
首先導入numpy:
(1)import numpy
(2)from numpy import *
(3)import numpy as np
相關推薦:《Python基礎教程》
然後分別用上面說的2種方法來分別構建一個4×3的矩陣,如圖:

㈦ 用python的numpy創建一個矩陣

  • 使用numpy創建矩陣有2種方法,一種是使用numpy庫的matrix直接創建,另一種則是使用array來創建。首先載入numpy庫,然後分別用上面說的2種方法來分別構建一個4×3的矩陣,如圖

  • 注意事項

  • [1]在高等數學或者線性代數等已經學過了當後面的矩陣的行數等於前面矩陣的列數時,2個矩陣才可以相乘

  • [2]Hadamard指的是2個m×n的矩陣相乘,結果仍然是m×n的矩陣,結果為對應元素的乘積

  • [3]單位矩陣是特殊的對角矩陣,零(1)矩陣是指元素全部是0(1)的矩陣

  • [4]矩陣的第一行是從0開始編號的,python中的各種編號基本上都是從0開始的

熱點內容
android游戲安裝 發布:2025-03-16 03:50:08 瀏覽:329
翻杯子演算法 發布:2025-03-16 03:34:31 瀏覽:602
ftp後台密碼怎麼設置 發布:2025-03-16 03:33:08 瀏覽:360
阿里雲伺服器的sdk是免費的嗎 發布:2025-03-16 03:33:04 瀏覽:7
卸載linux軟體 發布:2025-03-16 03:19:07 瀏覽:808
太平天國迅雷下載ftp 發布:2025-03-16 03:13:19 瀏覽:64
伺服器硬碟溫度怎麼調節 發布:2025-03-16 03:11:47 瀏覽:74
netcore編譯前執行代碼 發布:2025-03-16 03:05:17 瀏覽:475
飢荒聯機版伺服器搭建程序 發布:2025-03-16 02:55:18 瀏覽:684
win7如何訪問共享 發布:2025-03-16 02:55:14 瀏覽:37