numpy的學習筆記

2022-04-25 06:15:47 字數 3702 閱讀 7077

本次筆記學習教程出自:

numpy的使用:

import numpy as np

1.numpy陣列的基本使用和操作:

import

numpy 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 #

更改陣列的元素值的方法和變化列表的方法一樣

print

(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.切片操作:

import

numpy as np

a=np.array([[1,2,3],[4,5,6],[7,8,9]])

b=a[:2,1:3]#

切片,只取[0,2)行和[1,3)列的交集

print

(a)print

(b)c=a[1,1:3]#

切出來的只是一行數字,不算是個矩陣

d=a[1:2,1:3]#

切出來的是乙個1*2的矩陣

print

(c,c.shape)

print

(d,d.shape)

a=np.array([[1,2],[3,4],[5,6]])

print

(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]

print

(a)a[np.arange(4),b]+=10

print(a)

3.布林型別索引:

import

numpy as np

#布林型別陣列索引

a=np.array([[1,2],[3,4],[5,6]])

bool_idx=(a>3)

print

(bool_idx)

#prints [[false false]

#[false true]

#[ true true]]

print(a[bool_idx]) #

prints [4 5 6]

4.基本運算操作等:

import

numpy as np

a=np.array([[1,2],[2,3]])

print(a.dtype)#

顯示陣列的資料型別

#numpy陣列的運算

b=np.array([[2,3],[4,5]])#加法

print(a+b)

#相當於

print

(np.add(a,b))#減法

print(a-b)

#相當於

print

(np.subtract(a,b))

#乘法,不是矩陣乘法

print(a*b)

print

(np.multiply(a,b))#除法

print(a/b)

print

(np.divide(a,b))#開方

print

(np.sqrt(a))

#矩陣乘法

print

(a.dot(b))

print

(np.dot(a,b))

#prints [[10 13]

#[16 21]]

print

(b.dot(a))

print

(np.dot(b,a))

#prints [[ 8 13]

#[14 23]]

5.其他方法(sum,轉置):

import

numpy as np

print

(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

print

(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...