這篇文章主要為大家展示了“Python中numpy怎么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Python中numpy怎么用”這篇文章吧。
創(chuàng)新互聯(lián)從2013年成立,先為望都等服務(wù)建站,望都等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為望都企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
1.numpy基礎(chǔ)操作
#!/usr/bin/env python
#coding:utf-8
import numpy as np
array = np.array([[1,2,3],[4,5,6]])
print(array)
print('維度:',array.ndim) #有幾行
print(array.shape) #(2, 3) 有幾行,幾列
print('size:',array.size) #總數(shù)大小
a = np.array([2,3,4], dtype=np.int64) #定義類(lèi)型 int64
print(a.dtype)
a = np.zeros((3,4)) #定義一個(gè)=個(gè)三行四列的矩陣,里面的只全部為0
a = np.ones((3,4)) #生成一個(gè)三行四列的矩陣,值為1
a = np.empty((3,4)) #生成一個(gè)三行四列的矩陣,值為0
a = np.arange(1,10,2) #生成一個(gè)從1-9 步長(zhǎng)為2的矩陣
a = np.arange(10) #生成一個(gè)從0-9 的矩陣
a = np.arange(12).reshape(3,4) #生成一個(gè)3行4列的數(shù)列
a = np.linspace(1,10,6).reshape(2,3) #生成一個(gè)1-10之間2行3列的6段線(xiàn)段
a = np.array([10,20,30,40])
b = np.arange(4) #生成一個(gè)0-3之間四位數(shù)的矩陣,即0-3四個(gè)陣列成的矩陣
print(a,b) #列印兩個(gè)矩陣
print(a b) #矩陣相加
print(a-b) #矩陣相減
print(a*b) #矩陣相乘
print(a**b) #矩陣乘方
2. numpy矩陣運(yùn)算
c = np.sin(a)*10 #對(duì)a中每個(gè)值取sin, 再乘10, con, tan都是這樣的
print(c)
print(b<3) #判斷b中每個(gè)數(shù)據(jù)是不是小于3, [ True True True False]
a = np.array([[1,2],[3,4]])
b = np.arange(4).reshape(2,2)
print(a,b)
print(a*b) #矩陣a和矩陣b中的每個(gè)值相乘, 相乘之后的數(shù)值組成的一個(gè)矩陣
print(np.dot(a,b)) #矩陣與矩陣相乘,第一個(gè)矩陣的列等于第二個(gè)矩陣的行
print(a.dot(b)) #跟上面的結(jié)果是一樣的
a = np.random.random((2,4)) #在0-1之間隨機(jī)生成一個(gè)2行4列的一個(gè)矩陣
print(a)
print(np.sum(a)) #矩陣?yán)飻?shù)值求和
print('###############################')
print(np.sum(a,axis=1)) #矩陣每行的求和
print(np.sum(a,axis=0)) #矩陣每列的求和
print(np.min(a)) #矩陣最小值
print(np.min(a,axis=1)) #矩陣每行最小值
print(np.min(a,axis=0)) #矩陣每列最小值
print(np.max(a)) #矩陣最大值
print(np.max(a,axis=1)) #矩陣每行最大值
print(np.max(a,axis=0)) #矩陣每列最大值
A = np.arange(1,13).reshape(3,4) #在1-13這12個(gè)數(shù)中,分成3行4列
print(A)
print(np.argmin(A)) #求矩陣中最小值的索引 0
print(np.argmax(A)) #求矩陣中最大值的索引 11
print(np.mean(A)) #求矩陣中平均值
print(A.mean()) #求矩陣中平均值
print(np.median(A)) #求矩陣中中位數(shù)
print(np.cumsum(A)) #矩陣中數(shù)值累加,第一個(gè)為第一個(gè)的值,第二個(gè)為前兩個(gè)值的和,第三個(gè)為前三個(gè)的和。。。
print(np.diff(A)) #矩陣中數(shù)組累差, 后面減前面一個(gè)的差
print(np.nonzero(A)) #找出矩陣中非0的數(shù), 結(jié)果輸出兩個(gè)array, 第一個(gè)為行,第二個(gè)為列
A = np.arange(13,1,-1).reshape(3,4)
print(A)
print(np.sort(A)) #逐行從小到大排序
print(np.transpose(A)) #矩陣行列變換
print(A.T) #矩陣行列變換,上面的簡(jiǎn)寫(xiě)
print((A.T).dot(A)) #行列變換之后的矩陣再和以前的矩陣相乘
print(np.clip(A,5,10)) #矩陣小于5的等于5, 大于10的等于10, 只保留中間部分
print(np.mean(A,axis=1)) #矩陣中對(duì)行計(jì)算平均值,axis=0是對(duì)列計(jì)算平均值
numpy矩陣索引切片
A = np.arange(1,13)
print(A)
print(A[3]) #根據(jù)矩陣索引獲取值,從0開(kāi)始的
A = np.arange(1,13).reshape(3,4)
print(A)
print(A[2]) #列印出第二行數(shù)據(jù)(從0開(kāi)始數(shù))
print(A[2][3]) #找出矩陣第2行第3列
print(A[2,3]) #找出矩陣第2行第3列
print(A[:,:]) #矩陣所有行所有列
print(A[:,1]) #矩陣第2列所有數(shù)
print(A[1,:]) #矩陣第2行所有數(shù)
print(A[1,2:]) #矩陣第一行第三個(gè)列及其以后的數(shù)
for row in A:
print(row) #迭代每一行
for column in A.T: #想迭代列先行列變換,將列變行,再迭代
print(column)
print(A.flatten()) #將三行四列的一個(gè)矩陣的值重新放到一個(gè)新的矩陣中
for item in A.flat: #A.flat返回一個(gè)可迭代類(lèi)
print(item)
4.矩陣變換
A = np.array([1,1,1])
B = np.array([2,2,2])
C = np.vstack((A,B)) #將兩個(gè)序列上下合并成一個(gè)矩陣
# C = np.hstack((A,B)) #將兩個(gè)序列左右合并,變成一個(gè)序列
print(C)
print(A[np.newaxis,:]) #將A加一個(gè)維度,從一個(gè)序列變成由一行組成的矩陣
print(A[:,np.newaxis]) #將A加一個(gè)維度,從一個(gè)序列變成由一列組成的矩陣
A = A[np.newaxis,:] #將A, B 分別加一個(gè)維度
B = B[np.newaxis,:]
print('A,B:',A,B)
C = np.vstack((A,B)) #將兩個(gè)矩陣上下合并
C = np.hstack((A,B)) #將兩個(gè)矩陣左右合并,這里將A、B合并成一個(gè)序列
print(C)
C = np.concatenate((A,B,B,A),axis=0) #可以幾行多個(gè)矩陣合并,可以指定合并維度,axis=1指每個(gè)矩陣按行左右合并,0是每個(gè)矩陣按列上下合并
print(C)
A = np.arange(12).reshape((3,4))
print(A)
print(np.split(A,2,axis=1)) #將A進(jìn)行分割,分成兩個(gè)array,按行等量分割,
print(np.array_split(A,3,axis=1)) #將A進(jìn)行分割,按行分成三個(gè)array,可以進(jìn)行不等量分割
print(np.vsplit(A,3)) #將A橫向平均分割成3快
print(np.hsplit(A,2)) #將A縱向平均分割成2快
a = np.arange(4)
print(a)
b = a
c = a
d = b
a[0] = 8
print(a)
print(d) #都是一樣的,一個(gè)改變了其他都變
print(b is a) #如果一樣就是True
d[1:3] = [11,22]
print(a) #也是一樣的,等于是改的同一快數(shù)組中的數(shù)據(jù)
#如果想a改變,其他賦值的不變則需要深拷貝
b = a.copy() #深拷貝,拷貝數(shù)組重新放到另外一塊記憶體中
print(a)
b[0] = 66
print(a,b) #b變了,a沒(méi)變
以上是“Python中numpy怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!