Python之Numpy常用操作

2021-10-10 18:51:01 字數 4063 閱讀 2225

1.陣列初始化

# 生成特定陣列

print

(np.array([2

,3], dtype=np.int16)

)# shape: (, 2)

print

(np.zeros((2

,3))

)# shape: (2, 3)

print

(np.empty((2

,3))

)# shape: (2, 3)

print

(np.random.random((2

,3))

)# shape: (2, 3)

# 生成均勻分布陣列

# arange(最小值,最大值,步長)(左閉右開)

print

(np.arange(1,

10,2)

)# [1 3 5 7 9]

# linspace(最小值,最大值,元素數量)

print

(np.linspace(1,

10,2)

)# [ 1. 10.]

2.陣列基本運算
a = np.arange(4)

.reshape(2,

2)#[[0 1],[2 3]]

b = np.arange(4,

8).reshape(2,

2)#[[4 5],[6 7]]

# '*'矩陣對應位置相乘

print

(a*b)

#[[ 0 5],[12 21]]

# dot表示矩陣乘法

print

(np.dot(a, b)

)#[[ 6 7],[26 31]]

# min、max、sum, axis=0表示按列操作,shape的時候消除行

c = np.arange(12)

.reshape(3,

4)#[[ 0 1 2 3], [ 4 5 6 7],[ 8 9 10 11]]

print

(c.sum

(axis =0)

)#[12 15 18 21] 沿列操作,行數被消除了

print

(c.sum

(axis =1)

)#[ 6 22 38]

# 一維陣列切片

a = np.arange(10)

**3print

(a)# [ 0 1 8 27 64 125 216 343 512 729]

print

(a[2:5

])# [ 8 27 64]

# equivalent to a[0:6:2] = -1000; a[開始位置, 結束位置, 步長]a[:

6:2]

=-10# [-10 1 -10 27 -10 125 216 343 512 729]

print

(a)print

(a[::-

1])# [729 512 343 216 125 -10 27 -10 1 -10], 倒序

# 多維陣列

a = np.arange(12)

.reshape(3,

4)# [[ 0 1 2 3], [ 4 5 6 7], [ 8 9 10 11]]

print

(a[:,0

])# [0 4 8]

print

(a[...

,0])

# [0 4 8] # …符號表示將所有未指定索引的維度均賦為 :

print

(a[-1]

)# [ 8 9 10 11]

# 遍歷陣列的每個元素

for i in a.flat:

print

(i)

3.多維陣列組合
a = np.array([[

0,1]

,[2,

3]])

# [[0 1],[2 3]]

print

(a.transpose())

# [[0 2],[1 3]]

b = np.array([[

4,5]

,[6,

7]])

# 水平組合

print

(np.concatenate(

(a, b)

, axis=1)

)# [[0 1 4 5], [2 3 6 7]] ,axis = 1,按行操作

# 垂直組合

print

(np.concatenate(

(a, b)

, axis=0)

)# [[0 1],[2 3],[4 5],[6 7]]

4.陣列中查詢最大/小索引
# # 獲取陣列中最大的前n個數值的位置索引

import heapq

defgetlistmaxnumindex

(num_list,topk=3)

:'''

獲取列表中最大的前n個數值的位置索引

'''max_num_index=

map(num_list.index, heapq.nlargest(topk,num_list)

) min_num_index=

map(num_list.index, heapq.nsmallest(topk,num_list)

)print

('max_num_index:'

,list

(max_num_index)

)print

('min_num_index:'

,list

(min_num_index)

)a =[1

,5,7

,2,3

]print

(getlistmaxnumindex(a,2)

)

5.查詢符合條件元素索引
# 查詢到符合條件元素的索引

a = np.arange(15)

.reshape(3,

5)print

(np.where(a >8)

)# [[1, 2, 2, 2, 2, 2], [4, 0, 1, 2, 3, 4]]

print

(np.argwhere(a >8)

)# [[1 4],[2 0],[2 1],[2 2],[2 3],[2 4]]

# 找出滿足條件的所有數中,左上角那個數值的索引

tl = np.

min(np.where(a >8)

, axis =1)

print

(tl)

#[1 0]

# 找出滿足條件的所有數中,右下角那個數值的索引

br = np.

max(np.where(a >8)

, axis =1)

print

(br)

#[2 4]

6.更改陣列維度

參考1: 擴充陣列維度

# 增加陣列維度

a = np.arange(6)

.reshape(2,

3)# (2, 3)

b = a[:,

:,np.newaxis,np.newaxis]

print

(a.shape)

# (2, 3, 1, 1)

# 擴充陣列維度

a = np.arange(16)

.reshape(4,

4)# (4, 4)

a = np.expand_dims(a,0)

.repeat(

3, axis=0)

# (3, 4, 4)

# 刪除行(axis=0)/列(axis=1)

a = np.arange(16)

.reshape(4,

4)b = np.delete(a,

0, axis=1)

# 以列維度刪除

print

(b)

python常用庫之numpy 一

numpy庫是python的一種開源的數字拓展,可以用來儲存和處理大型矩陣 1.優點 多維陣列ndarray,元素級計算,運算快 資料讀寫方便 2.特點 陣列定義的時候大小固定 儲存元素為同質 同種資料型別 3.資料的生成 numpy支援多種資料型別 a.使用列表或元組資料構造 1.1 列表 arr...

Python筆記 Numpy之常用統計函式

第乙個引數cond,是乙個布林型陣列 第二個引數xarr,是乙個任意陣列 常量 變數 第三個引數yarr,是乙個任意陣列 常量 變數 該函式根據cond的真值來選取xarr或yarr中的元素,當cond第n個元素的值為true,則獲取xarr對應位置的元素資料,否則獲取yarr對應位置的元素資料,最...

python資料分析常用包之numpy

numpy庫 1.建立矩陣 採用ndarray物件 建立乙個ndarry物件很簡單,只需要將list作為引數。import numpy as np 引入numpy庫 a np.array 1,2,3,4,5 建立一維的narray物件 a2 np.array 1,2,3,4,5 6,7,8,9,10...