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