Numpy 對於矩陣的操作持續更新

2022-07-17 07:12:10 字數 3605 閱讀 2634

>>> import

numpy as np

>>> a = np.random.randint(10,size=(5,5))

>>>a

array([[0, 8, 3, 0, 2],

[0, 6, 6, 6, 3],

[0, 3, 6, 8, 7],

[2, 6, 1, 4, 4],

[4, 1, 5, 6, 4]])

1. 陣列切片

隨機生成5x5的乙個矩陣

提取矩陣第n列

>>> a[:,3]

array([0, 6, 8, 4, 6])

提取矩陣第n行

>>> a[3,:]

array([2, 6, 1, 4, 4])

提取矩陣第n行到第n+m行

>>> a[1:4]

array([[0, 6, 6, 6, 3],

[0, 3, 6, 8, 7],

[2, 6, 1, 4, 4]])

提取矩陣第n行到第n+m列

>>> a[:,1:4]

array([[8, 3, 0],

[6, 6, 6],

[3, 6, 8],

[6, 1, 4],

[1, 5, 6]])

使用布林陣列選取資料集中大於4的數字

>>> a[a>4]

array([8, 6, 6, 6, 6, 8, 7, 6, 5, 6])

使用布林陣列選取資料集中第二列大於3的數字所在的行

>>> a[a[:,1]>3]

array([[0, 8, 3, 0, 2],

[0, 6, 6, 6, 3],

[2, 6, 1, 4, 4]])

使用布林陣列選取資料集中第二列等於3的數字所在的行

>>> a[a[:,1]==6]

array([[0, 6, 6, 6, 3],

[2, 6, 1, 4, 4]])

使用布林陣列設定值,把陣列a中小於4的值都設定為0

>>> a[a<4]=0

>>>a

array([[0, 8, 0, 0, 0],

[0, 6, 6, 6, 0],

[0, 0, 6, 8, 7],

[0, 6, 0, 4, 4],

[4, 0, 5, 6, 4]])

使用一維布林陣列設定整行或列:把第一列中含有數字6的行,全部設定為7

>>> a[a[:,1]==6]=7

>>>a

array([[0, 8, 3, 0, 2],

[7, 7, 7, 7, 7],

[0, 3, 6, 8, 7],

[7, 7, 7, 7, 7],

[4, 1, 5, 6, 4]])

取特定順序行的陣列,通過傳遞乙個列表或整形ndarray來指定想要的順序

>>> a[[1,3,4]]

array([[7, 7, 7, 7, 7],

[7, 7, 7, 7, 7],

[4, 1, 5, 6, 4]])

2.陣列索引

返回array中數字6的索引值

>>> np.where(a==6)

(array([1, 1, 1, 2, 3, 4]), array([1, 2, 3, 2, 1, 3]))

返回的是乙個tuple,第乙個代表的是按列查詢的索引值,第二個代表的是按行查詢的索引值

類似的

>>> np.argwhere(a==6)

array([[1, 1],

[1, 2],

[1, 3],

[2, 2],

[3, 1],

[4, 3]])

返回的是乙個array

3.型別轉換

型別轉換

>>>a.astype(np.float)

array([[0., 8., 3., 0., 2.],

[0., 6., 6., 6., 3.],

[0., 3., 6., 8., 7.],

[2., 6., 1., 4., 4.],

[4., 1., 5., 6., 4.]])

>>>a.astype(np.str)

array([['0

', '

8', '

3', '

0', '2'

], ['0

', '

6', '

6', '

6', '3'

], ['0

', '

3', '

6', '

8', '7'

], ['2

', '

6', '

1', '

4', '4'

], ['4

', '

1', '

5', '

6', '

4']], dtype='

')

陣列和純量之間的操作

>>> a*a

array([[ 0, 64, 9, 0, 4],

[ 0, 36, 36, 36, 9],

[ 0, 9, 36, 64, 49],

[ 4, 36, 1, 16, 16],

[16, 1, 25, 36, 16]])

>>> a-a

array([[0, 0, 0, 0, 0],

[0, 0, 0, 0, 0],

[0, 0, 0, 0, 0],

[0, 0, 0, 0, 0],

[0, 0, 0, 0, 0]])

純量的算術操就是把操作值作用於每乙個元素

>>> a-3array([[-3,  5,  0, -3, -1],

[-3, 3, 3, 3, 0],

[-3, 0, 3, 5, 4],

[-1, 3, -2, 1, 1],

[ 1, -2, 2, 3, 1]])

>>> a*3array([[ 0, 24, 9, 0, 6],

[ 0, 18, 18, 18, 9],

[ 0, 9, 18, 24, 21],

[ 6, 18, 3, 12, 12],

[12, 3, 15, 18, 12]])

numpy對於矩陣的一些基本操作

import numpy as np n1 np.array 1,2 3,4 n2 np.array 1,2 3,6 矩陣加矩陣,對應位置相加,但是shape必須相同 也就是必須都是2 2的 print n1 n2 2 4 6 10 矩陣與標量相加,就是將標量挨個加到矩陣元素中去 print n1 ...

numpy矩陣的基礎操作

import numpy delimiter分隔符,dtype資料格式 word alcho numpy.genfromtxt d qiujiahao4.txt delimiter dtype str print type word alcho print word alcho 0 1 2 3 4 ...

docker 常用操作持續更

docker日誌檢視 docker logs f tail 100 containerid docker ps 檢視活動的容器 a檢視所有容器 docker start stop restart containerid 啟動,停止,重啟docker容器 docker rm rmi 刪除容器 映象 d...