這是機器未來的第39篇文章
原文首發地址:https://blog.csdn.net/RobotFutures/article/details/126092621
將列表或元組轉換為ndarray數組
import numpy as np
arr = np.array([1,2,3,4,5]) # 創建一維數組
arr
array([1, 2, 3, 4, 5])
arr2 = np.array([[1,2,3,4],[5,6,7,8]], dtype=float) # 創建二維數組
arr2
array([[1., 2., 3., 4.],
[5., 6., 7., 8.]])
arr3 = np.array([[[1]]]) # 創建三維數組
arr3
array([[[1]]])
print(f"arr_ndim:{
arr.ndim}, arr2_ndim:{
arr2.ndim}, arr3_ndim:{
arr3.ndim}")
print(f"arr_shape:{
arr.shape}, arr2_shape:{
arr2.shape}, arr3_shape:{
arr3.shape}")
arr_ndim:1, arr2_ndim:2, arr3_ndim:3
arr_shape:(5,), arr2_shape:(2, 4), arr3_shape:(1, 1, 1)
linespace函數常用來生成matplot圖標展示的X軸。
x1 = np.linspace(start=1,stop=10,num=10)
start:起始值,stop:結束值(包含),num:元素個數
x1 = np.linspace(start=1,stop=10,num=10)
x1
array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
x2 = np.arange(start=1,stop=100,step=3)
可以指定步長step
x2 = np.arange(start=1,stop=100,step=3)
x2
array([ 1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49,
52, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82, 85, 88, 91, 94, 97])
x = np.ones(shape=(3,3))
x
array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
np.zeros(shape=(3,3))
array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
x2 = np.arange(start=1,stop=100,step=3)
print(x2)
x2_1 = np.ones_like(x2)
print(x2_1)
[ 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70
73 76 79 82 85 88 91 94 97]
[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
np.zeros_like(x2)
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, 0, 0, 0, 0, 0, 0, 0, 0])
生成指定ndarray對象的對角矩陣
x2 = np.linspace(start=1, stop=64,num=64)
x2 = x2.reshape(8, 8)
print(x2)
np.diag(x2)
[[ 1. 2. 3. 4. 5. 6. 7. 8.]
[ 9. 10. 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. 36. 37. 38. 39. 40.]
[41. 42. 43. 44. 45. 46. 47. 48.]
[49. 50. 51. 52. 53. 54. 55. 56.]
[57. 58. 59. 60. 61. 62. 63. 64.]]
array([ 1., 10., 19., 28., 37., 46., 55., 64.])
可以看到diag僅提取了8*8矩陣的左上右下對角線的值。
生成指定形狀的單位矩陣。
np.eye(8)
array([[1., 0., 0., 0., 0., 0., 0., 0.],
[0., 1., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., 0., 0., 0., 0., 0.],
[0., 0., 0., 1., 0., 0., 0., 0.],
[0., 0., 0., 0., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 1., 0., 0.],
[0., 0., 0., 0., 0., 0., 1., 0.],
[0., 0., 0., 0., 0., 0., 0., 1.]])
待補充
寫在末尾:
- 博客簡介:專注AIoT領域,追逐未來時代的脈搏,記錄路途中的技術成長!
- 專欄簡介:從0到1掌握SELinux的使用。
- 面向人群:嵌入式Linux軟件工程師
- 專欄計劃:接下來會逐步發布跨入人工智能的系列博文,敬請期待
- Python零基礎快速入門系列
- 數據科學系列
- 人工智能開發環境搭建系列
- 機器學習系列
- 物體檢測快速入門系列
- 自動駕駛物體檢測系列
- …