本次筆記學習教程出自:
numpy的使用:
import numpy as np
1.numpy陣列的基本使用和操作:
importnumpy as np
a=np.array([[1,2,3],[4,5,6]])#
自定義乙個numpy陣列a
print('
array a is \n
'+str(a)+'
\n and the shape is
'+str(a.shape)+'
\n and the type is
'+str(type(a)))
#prints "
#array a is
#[[1 2 3]
#[4 5 6]]
#and the shape is (2, 3)
#and the type is #"
#a.shape可以得到陣列a的形狀
print(a[0,0],a[0,1],a[1,0])#
引用陣列具體元素
a[0,0]=99 #
更改陣列的元素值的方法和變化列表的方法一樣
(a)#
建立各種特殊矩陣/陣列:
b=np.zeros((3,2))
print('
b is
'+str(b))
b=np.ones((2,3))
print('
b is
'+str(b))
b=np.full((2,2),7)
print('
b is
'+str(b))
b=np.eye(3)#
建立單位矩陣
print('
b is
'+str(b))
b=np.random.random((3,1))#
建立隨機矩陣,但元素只是在(0,1)之間隨機
print('
b is
'+str(b))
2.切片操作:
importnumpy as np
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
b=a[:2,1:3]#
切片,只取[0,2)行和[1,3)列的交集
(a)print
(b)c=a[1,1:3]#
切出來的只是一行數字,不算是個矩陣
d=a[1:2,1:3]#
切出來的是乙個1*2的矩陣
(c,c.shape)
(d,d.shape)
a=np.array([[1,2],[3,4],[5,6]])
(a)print(a[[0,1,2],[0,1,0]])#
輸出a[0,0],a[1,1],a[2,0]
a=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
b=np.array([0,2,0,1])
print(a[np.arange(4),b])#
np.arange(4)=[0.1.2.3]
(a)a[np.arange(4),b]+=10
print(a)
3.布林型別索引:
importnumpy as np
#布林型別陣列索引
a=np.array([[1,2],[3,4],[5,6]])
bool_idx=(a>3)
(bool_idx)
#prints [[false false]
#[false true]
#[ true true]]
print(a[bool_idx]) #
prints [4 5 6]
4.基本運算操作等:
importnumpy as np
a=np.array([[1,2],[2,3]])
print(a.dtype)#
顯示陣列的資料型別
#numpy陣列的運算
b=np.array([[2,3],[4,5]])#加法
print(a+b)
#相當於
(np.add(a,b))#減法
print(a-b)
#相當於
(np.subtract(a,b))
#乘法,不是矩陣乘法
print(a*b)
(np.multiply(a,b))#除法
print(a/b)
(np.divide(a,b))#開方
(np.sqrt(a))
#矩陣乘法
(a.dot(b))
(np.dot(a,b))
#prints [[10 13]
#[16 21]]
(b.dot(a))
(np.dot(b,a))
#prints [[ 8 13]
#[14 23]]
5.其他方法(sum,轉置):
importnumpy as np
(a)#
sum運算
a=np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
print(np.sum(a))#
所有元素相加
print(np.sum(a,axis=0))#
三維陣列中的第乙個向量上相加
#prints [[ 6 8]
#[10 12]]
print(np.sum(a,axis=1))#
列上相加
#prints [[ 4 6]
#[12 14]]
print(np.sum(a,axis=2))#
行上相加
#prints [[ 3 7]
#[11 15]]
#轉置矩陣
print(a.t)
6.廣播,broadcasting:
#broadcasting
import
numpy as np
x=np.array([[1,2,3],[4,5,6],[7,8,9]])
v=np.array([1,0,1])
y=np.empty_like(x)#
y=xprint
(y)for i in range(3):
y[i,:]=x[i,:]+v
(y)a=np.array([1,2,3])
b=np.array([4,5])
print(np.reshape(a,(3,1))*b)
#先使得v從(3,)的shape變成(3,1),然後再和b廣播變成shape為(3,2)
#prints [[ 4 5]
#[ 8 10]
#[12 15]]
Numpy學習筆記
測試檔案裡的資料排列型別最好是有規律的,不可以隨便,否則將發生一些錯誤 genfromtxt函式 genfromtxt函式建立陣列 資料 genfromtxt主要執行兩個迴圈運算。第乙個迴圈將檔案的每一行轉換成字串序列。第二個迴圈將每個字串序列轉換為相應的資料型別。genfromtxt能夠考慮缺失的...
numpy學習筆記
1 array.ndim 用來輸出陣列的維度 2 array.shape 用來輸出陣列的形狀 3 arry.size 用來輸出陣列的大小見jupyter notebook的numpy function list 生成函式基本運算 直接用陣列的相加減乘除。也就是相對應的元素間的作用。關係運算 陣列元素...
NumPy學習筆記
example np.version np.array 1,2,3 4,5,6 np.zeros 3 3 np.ones 2 3,4 np.eye 3 np.range 5 0,1,2,3,4 np.random.rand 2,3 np.random.randint 5,size 2 3 value...