Numpy的核心array對象以及創建array的方法
array對象的背景:
- Numpy的核心數據結構,就叫做array就是數組,array對象可以是一維數組,也可以是多維數組;
- Python的List也可以實現相同的功能,但是array比List的優點在於性能好、包含數組元數據信息、大量的便捷函數;
- Numpy成為事實上的Scipy、Pandas、Scikit-Learn、Tensorflow、PaddlePaddle等框架的“通用底層語言”
- Numpy的array和Python的List的一個區別,是它元素必須都是同一種數據類型,比如都是數字int類型,這也是Numpy高性能的一個原因;
array本身的屬性
- shape:返回一個元組,表示array的維度
- ndim:一個數字,表示array的維度的數目
- size:一個數字,表示array中所有數據元素的數目
- dtype:array中元素的數據類型
創建array的方法
- 從Python的列表List和嵌套列表創建array
- 使用預定函數arange、ones/ones_like、zeros/zeros_like、empty/empty_like、full/full_like、eye等函數創建
- 生成隨機數的np.random模塊構建
array本身支持的大量操作和函數
- 直接逐元素的加減乘除等算數操作
- 更好用的面向多維的數組索引
- 求sum/mean等聚合函數
- 線性代數函數,比如求解逆矩陣、求解方程組
1. 使用Python的List和嵌套List創建一維的array和二維的array
2. 探索數組array的屬性
x為一維的數組,X為二維的數組
3. 創建array的便捷函數
使用arange創建數字序列
arange([start], stop, [ step], dtype=None)
使用ones創建全是1的數組
np.ones(shape, dtype=None, order='C')
shape : int or tuple of ints Shape of the new array, e.g., (2, 3)
or 2
.
使用ones_like創建形狀相同的數組
ones_like(a, dtype=float, order='C')
使用zeros創建全是0的數組
np.zeros(shape, dtype=None, order='C')
使用zeros_like創建形狀相同的數組
np.zeros_like(a, dtype=None)
使用empty創建全是0的數組
empty(shape, dtype=float, order='C')
注意:數據是未初始化的,里面的值可能是隨機值不要用,這個和zeros不同
使用empty_like創建形狀相同的數組
empty_like(prototype, dtype=None)
使用full創建指定值的數組
np.full(shape, fill_value, dtype=None, order='C')
使用random模塊生成隨機數的數組
randn(d0, d1, ..., dn)
4. array本身支持的大量操作和函數
這些操作如果用Python實現需要寫很多for循環,用numpy數組很容易