2019.3.1 星期五 多云 biolearn
創(chuàng)建數(shù)組
#創(chuàng)建數(shù)組
my_array = np.array([1, 2, 3, 4, 5])
#創(chuàng)建全為 0 或者 1 的數(shù)組
my_array = np.zeros((2,5)) #(2,5) 表示創(chuàng)建 2 行 5 列值全為 0 的數(shù)組
my_array = np.ones((5)) # 創(chuàng)建 1 行 5 列值全為 1 的數(shù)組
#創(chuàng)建全為某個(gè)常數(shù)的數(shù)組
my_array = np.full((2,2), 7) # 創(chuàng)建 2 行 2 列,值全為 7 的數(shù)組
#創(chuàng)建對(duì)角矩陣
my_array = np.eye(2) # 創(chuàng)建 2 * 2維的對(duì)角矩陣
#創(chuàng)建隨機(jī)數(shù)組
my_array = np.random.rand(5) # 隨機(jī)函數(shù),值均在 0-1 之間
my_array = np.random.rand(2,5) # 2 行 5 列
#np.arange
my_array = np.arange(5) # 結(jié)果為 [0 1 2 3 4],默認(rèn)以 1 為步長(zhǎng),創(chuàng)建數(shù)組
my_array = np.arange(2,6) # 結(jié)果 [2 3 4 5]
my_array = np.arange(0,10,2) # 以 2 為步長(zhǎng)創(chuàng)建數(shù)組,結(jié)果為 [0 2 4 6 8]
#np.linspace
my_array = np.linspace(0,3,5) # 0-3 均勻的分為5個(gè)數(shù),結(jié)果為 [0. 0.75 1.5 2.25 3.]
數(shù)組屬性
a = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28 ,29, 30],
[31, 32, 33, 34, 35]])
print(type(a)) # 數(shù)據(jù)的類(lèi)型,結(jié)果 <class 'numpy.ndarray'>
print(a.dtype) # 字符類(lèi)型,結(jié)果 int64
print(a.size) # 數(shù)組的大小,結(jié)果 25
print(a.shape) # 數(shù)組的形狀,結(jié)果 (5, 5)
print(a.itemsize) # 每項(xiàng)占用的字節(jié)數(shù),結(jié)果 8
print(a.ndim) # 數(shù)組的維數(shù),因 a 是二維數(shù)組,結(jié)果 2
print(a.nbytes) # 數(shù)組中的所有數(shù)據(jù)消耗掉的字節(jié)數(shù),結(jié)果 200
數(shù)組的基本操作
加減乘除四則運(yùn)算
a = np.arange(25)
a = a.reshape((5, 5)) # 將 1 * 25的一維數(shù)組變成 5 * 5的兩位數(shù)組
b = np.linspace(0,50,25)
b = b.reshape((5,5))
print(a + b) #相對(duì)項(xiàng)元素相加
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(a ** 2) #平方
print(np.sqrt(a)) #開(kāi)方
print(a < b) #若符合條件,則布爾值為 true,反之為 False
print(a > b)
print(a.dot(b)) #矩陣相乘
#特殊的運(yùn)算符
# dot, sum, min, max, cumsum
a = np.arange(10)
print(a.sum()) # 總和,結(jié)果 45
print(np.sum(a, axis=0)) # Compute sum of each column
print(np.sum(a, axis=1)) # Compute sum of each row
print(a.min()) # 最小值,結(jié)果 0
print(a.max()) # 最大值,結(jié)果 9
print(a.cumsum()) # 累加,從左到右依次累加,輸出每次相加的結(jié)果,結(jié)果為 [ 0 1 3 6 10 15 21 28 36 45]
#裝置矩陣
x = np.array([[1,2], [3,4]])
print(x.T) # 裝置
數(shù)組索引
#單個(gè)元素索引
x = np.arange(10) # [0 1 2 3 4 5 6 7 8 9]
x[2] # 結(jié)果 2
x[-2] # 結(jié)果 8
#二維數(shù)組的索引
x.shape = (2,5) # [[0 1 2 3 4]
# [5 6 7 8 9]]
x[1,3] # 結(jié)果 8
x[1,-1] # 結(jié)果 9
x[0] # [0 1 2 3 4]
#花式索引
a = np.arange(0, 100, 10)
indices = [1, 5, -1]
b = a[indices]
print(a) # >>>[ 0 10 20 30 40 50 60 70 80 90]
print(b) # >>>[10 50 90]
#布爾值索引
a = np.arange(0, 100, 10) # [ 0 10 20 30 40 50 60 70 80 90]
b = a < 50
print(a[b]) # [ 0 10 20 30 40]
數(shù)組切片
#切片操作
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
print(a[0,:]) # 第一行,[1 2 3 4]
print(a[:,0]) # 第一列,[1 5 9]
print(a[1:3,2]) # 第 2-3 行,第 3 列,[7 11]
-
多維數(shù)組的切片

矩陣和向量
#生成矩陣
A = np.array([[1,-1,2],[3,2,0]])
#生成單列的數(shù)組
v = np.array([[2],[1],[3]])
v = np.transpose(np.array([[2,1,3]])) # 使用轉(zhuǎn)置
#矩陣乘法或矩陣向量乘法
w = np.dot(A,v)
#用numpy求解方程組 A x = b
A = np.array([[2,1,-2],[3,0,1],[1,1,-1]])
b = np.transpose(np.array([[-3,5,-2]])
x = np.linalg.solve(A,b)
進(jìn)階篇
2、如何創(chuàng)建一維數(shù)組?
3. 如何創(chuàng)建一個(gè)布爾數(shù)組?
4. 如何從一維數(shù)組中提取滿足指定條件的元素?
5. 如何用numpy數(shù)組中的另一個(gè)值替換滿足條件的元素項(xiàng)?
6. 如何在不影響原始數(shù)組的情況下替換滿足條件的元素項(xiàng)?
7. 如何改變數(shù)組的形狀?
8. 如何垂直疊加兩個(gè)數(shù)組?
9. 如何水平疊加兩個(gè)數(shù)組?
10. 如何在無(wú)硬編碼的情況下生成numpy中的自定義序列?
11. 如何獲取兩個(gè)numpy數(shù)組之間的公共項(xiàng)?
12. 如何從一個(gè)數(shù)組中刪除存在于另一個(gè)數(shù)組中的項(xiàng)?
13. 如何得到兩個(gè)數(shù)組元素匹配的位置?
14. 如何從numpy數(shù)組中提取給定范圍內(nèi)的所有數(shù)字?
15. 如何創(chuàng)建一個(gè)python函數(shù)來(lái)處理scalars并在numpy數(shù)組上工作?
16. 如何交換二維numpy數(shù)組中的兩列?
17. 如何交換二維numpy數(shù)組中的兩行?
18. 如何反轉(zhuǎn)二維數(shù)組的行?
19. 如何反轉(zhuǎn)二維數(shù)組的列?
20. 如何創(chuàng)建包含5到10之間隨機(jī)浮動(dòng)的二維數(shù)組?
21. 如何在numpy數(shù)組中只打印小數(shù)點(diǎn)后三位?
22. 如何通過(guò)e式科學(xué)記數(shù)法(如1e10)來(lái)打印一個(gè)numpy數(shù)組?
23. 如何限制numpy數(shù)組輸出中打印的項(xiàng)目數(shù)?
24. 如何打印完整的numpy數(shù)組而不截?cái)?25. 如何導(dǎo)入數(shù)字和文本的數(shù)據(jù)集保持文本在numpy數(shù)組中完好無(wú)損?
26. 如何從1維元組數(shù)組中提取特定列?
27. 如何將1維元組數(shù)組轉(zhuǎn)換為2維numpy數(shù)組?
28. 如何計(jì)算numpy數(shù)組的均值,中位數(shù),標(biāo)準(zhǔn)差?
29. 如何規(guī)范化數(shù)組,使數(shù)組的值正好介于0和1之間?
30. 如何計(jì)算Softmax得分?
31. 如何找到numpy數(shù)組的百分位數(shù)?
32. 如何在數(shù)組中的隨機(jī)位置插入值?
33. 如何在numpy數(shù)組中找到缺失值的位置?
34. 如何根據(jù)兩個(gè)或多個(gè)條件過(guò)濾numpy數(shù)組?
35. 如何從numpy數(shù)組中刪除包含缺失值的行?
36. 如何找到numpy數(shù)組的兩列之間的相關(guān)性? #PCC
37. 如何查找給定數(shù)組是否具有任何空值?
38. 如何在numpy數(shù)組中用0替換所有缺失值?
39. 如何在numpy數(shù)組中查找唯一值的計(jì)數(shù)?
45. 如何在numpy數(shù)組中找到最常見(jiàn)的值?
47. 如何將大于給定值的所有值替換為給定的截止值?
51. 如何在numpy中為數(shù)組生成單熱編碼?
60. 如何將PIL圖像轉(zhuǎn)換為numpy數(shù)組?
62. 如何計(jì)算兩個(gè)數(shù)組之間的歐氏距離?
63. 如何在一維數(shù)組中找到所有的局部極大值(或峰值)?
......見(jiàn)
https://www.numpy.org.cn/article/advanced/numpy_exercises_for_data_analysis.html
摘自Numpy 中文文檔,僅為了方便自己查詢