@toc
Numpy 清理工具
Numpy常用数据结构
- Numpy中常用的数据结构是ndarray格式
- 使用array函数创建,语法格式为array(列表或元组)
- 可以使用其他函数例如arange、linspace、zeros等创建
import numpy as np代码语言:txt复制arr1 = np.array([-9, 7, 4, 3])代码语言:txt复制arr1代码语言:txt复制array([-9, 7, 4, 3])代码语言:txt复制type(arr1) # n维数组代码语言:txt复制numpy.ndarray代码语言:txt复制arr1 = np.array([-9, 7, 4, 3], dtype='str')代码语言:txt复制arr1代码语言:txt复制array(['-9', '7', '4', '3'], dtype='<U2')代码语言:txt复制arr1 = np.array([-9, 7, 4, 3], dtype=float)代码语言:txt复制arr1代码语言:txt复制array([-9., 7., 4., 3.])代码语言:txt复制arr1 = np.array([-9, 7, 4, 3], dtype=int)代码语言:txt复制arr1代码语言:txt复制array([-9, 7, 4, 3])代码语言:txt复制代码语言:txt复制arr2 = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])代码语言:txt复制arr2代码语言:txt复制array([[ 1, 2, 3, 4],代码语言:txt复制 [ 5, 6, 7, 8],代码语言:txt复制 [ 9, 10, 11, 12]])代码语言:txt复制for i in range(1, 10):
print(i)代码语言:txt复制1代码语言:txt复制2代码语言:txt复制3代码语言:txt复制4代码语言:txt复制5代码语言:txt复制6代码语言:txt复制7代码语言:txt复制8代码语言:txt复制9代码语言:txt复制np.arange(1, 10, 0.5)代码语言:txt复制array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5, 6. , 6.5, 7. ,代码语言:txt复制 7.5, 8. , 8.5, 9. , 9.5])代码语言:txt复制# 等差数组
# 第一个参数:起始值
# 第二个参数:终止值
# 第三个参数:元素个数
# endpoint:是否包含终值
np.linspace(1, 10, 10, endpoint=True)代码语言:txt复制array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])代码语言:txt复制np.linspace(1, 10, 20, endpoint=True)代码语言:txt复制array([ 1. , 1.47368421, 1.94736842, 2.42105263, 2.89473684,代码语言:txt复制 3.36842105, 3.84210526, 4.31578947, 4.78947368, 5.26315789,代码语言:txt复制 5.73684211, 6.21052632, 6.68421053, 7.15789474, 7.63157895,代码语言:txt复制 8.10526316, 8.57894737, 9.05263158, 9.52631579, 10. ])代码语言:txt复制9/19 # 步长代码语言:txt复制0.47368421052631576代码语言:txt复制1 3 * (9/19)代码语言:txt复制2.4210526315789473代码语言:txt复制# 产生一个4行5列的数组,值为0
np.zeros([4, 5])代码语言:txt复制array([[0., 0., 0., 0., 0.],代码语言:txt复制 [0., 0., 0., 0., 0.],代码语言:txt复制 [0., 0., 0., 0., 0.],代码语言:txt复制 [0., 0., 0., 0., 0.]])代码语言:txt复制np.zeros(4)代码语言:txt复制array([0., 0., 0., 0.])代码语言:txt复制# 产生一个2行3列的数组,值为1
np.ones([2, 3])代码语言:txt复制array([[1., 1., 1.],代码语言:txt复制 [1., 1., 1.]])代码语言:txt复制# 对每一个数组元素加1
arr2 1代码语言:txt复制array([[ 2, 3, 4, 5],代码语言:txt复制 [ 6, 7, 8, 9],代码语言:txt复制 [10, 11, 12, 13]])代码语言:txt复制# 判断数组的维数
arr1.ndim代码语言:txt复制1代码语言:txt复制arr2.ndim代码语言:txt复制2代码语言:txt复制# 判断数组的形状
arr1.shape代码语言:txt复制(4,)代码语言:txt复制arr2.shape代码语言:txt复制(3, 4)代码语言:txt复制# 返回数组元素个数
arr2.size代码语言:txt复制12代码语言:txt复制# 返回数组元素类型
arr2.dtype代码语言:txt复制dtype('int32')代码语言:txt复制代码语言:txt复制data2 = ((8.5, 6, 4, 1.2, 0.7), (1.5, 3, 5.4, 7.3, 9), (3.2, 4.5, 6, 3, 9), (11.2, 13.4, 15.6, 17.8, 19))代码语言:txt复制arr3 = np.array(data2)代码语言:txt复制arr3代码语言:txt复制array([[ 8.5, 6. , 4. , 1.2, 0.7],代码语言:txt复制 [ 1.5, 3. , 5.4, 7.3, 9. ],代码语言:txt复制 [ 3.2, 4.5, 6. , 3. , 9. ],代码语言:txt复制 [11.2, 13.4, 15.6, 17.8, 19. ]])代码语言:txt复制arr3[0]代码语言:txt复制array([8.5, 6. , 4. , 1.2, 0.7])代码语言:txt复制arr3[3]代码语言:txt复制array([11.2, 13.4, 15.6, 17.8, 19. ])代码语言:txt复制# 取第二行第三列元素
arr3[1, 2]代码语言:txt复制5.4代码语言:txt复制arr3[1][2]代码语言:txt复制5.4代码语言:txt复制arr3[:, 3]代码语言:txt复制array([ 1.2, 7.3, 3. , 17.8])代码语言:txt复制# 取第二列到第三列元素
arr3[:, 1:3]代码语言:txt复制array([[ 6. , 4. ],代码语言:txt复制 [ 3. , 5.4],代码语言:txt复制 [ 4.5, 6. ],代码语言:txt复制 [13.4, 15.6]])代码语言:txt复制arr3[3][1]代码语言:txt复制13.4$color{red}数组下标从0开始,且左闭右开$
Numpy常用数据清理函数
代码语言:txt复制import numpy as np代码语言:txt复制s = np.array([1,2,3,4,3,2,1,2,2,4,6,7,2,4,8,4,5])代码语言:txt复制s = np.sort(s)代码语言:txt复制s代码语言:txt复制array([1, 1, 2, 2, 2, 2, 2, 3, 3, 4, 4, 4, 4, 5, 6, 7, 8])代码语言:txt复制np.array(sorted(s, reverse=True))代码语言:txt复制array([8, 7, 6, 5, 4, 4, 4, 4, 3, 3, 2, 2, 2, 2, 2, 1, 1])代码语言:txt复制# 返回排序的索引
np.argsort(s)代码语言:txt复制array([ 0, 6, 12, 7, 5, 8, 1, 2, 4, 3, 15, 9, 13, 16, 10, 11, 14],代码语言:txt复制 dtype=int64)代码语言:txt复制arr1 = np.array([[0,1,3],[4,2,9],[4,5,9],[1,-3,4]])代码语言:txt复制# axis=0:表示对列排序
# axis=1:表示对行排序
np.sort(arr1, axis=0)代码语言:txt复制array([[ 0, -3, 3],代码语言:txt复制 [ 1, 1, 4],代码语言:txt复制 [ 4, 2, 9],代码语言:txt复制 [ 4, 5, 9]])代码语言:txt复制np.sort(arr1, axis=1)代码语言:txt复制array([[ 0, 1, 3],代码语言:txt复制 [ 2, 4, 9],代码语言:txt复制 [ 4, 5, 9],代码语言:txt复制 [-3, 1, 4]])代码语言:txt复制s代码语言:txt复制array([1, 2, 3, 4, 3, 2, 1, 2, 2, 4, 6, 7, 2, 4, 8, 4, 5])代码语言:txt复制# 第一个参数:条件
# 第二个参数:条件满足的返回值
# 第三个参数:条件不满足的返回值
# 大于3返回元素本身,不大于3返回-1
np.where(s>3, s, -1)代码语言:txt复制array([-1, -1, -1, 4, -1, -1, -1, -1, -1, 4, 6, 7, -1, 4, 8, 4, 5])代码语言:txt复制# 第一个参数:条件
# 第二个参数:返回的值
# 筛选数组中值大于3的元素
np.extract(s > 3, s)代码语言:txt复制array([4, 4, 6, 7, 4, 8, 4, 5])


