本文介绍的方法均为我在做作业是常用的方法,要是有不对的地方还请大神指正
数组的基本操作
numpy中数组的条件查询--np.where()函数
两种用法
1.三个参数时:满足condition条件,输出x,不满足输出y。
2.一个参数时:输出数组中‘真’值的坐标。
函数原型为:
numpy.where(condition, [x, y, ]/)
示例
>>> import numpy as np
>>> a = np.arange(9).reshape(3,3)
>>> b = np.zeros((3,3))
>>> c = np.ones((3,3))
>>> print(np.where((a > 5), b, c))
[[1. 1. 1.]
[1. 1. 1.]
[0. 0. 0.]]
>>> print(np.where(a > 5))
(array([2, 2, 2], dtype=int64), array([0, 1, 2], dtype=int64))
>>> a
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> b
array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
>>> c
array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
数据处理--数组切片和索引
与列表切片不同,NumPy中数组切片的结果都是数组的视图,对视图的修改会引起原有数组的改变。
>>> a = np.arange(9)
>>> b = a[::-1]
>>> b
array([8, 7, 6, 5, 4, 3, 2, 1, 0])
>>> b = a[1:5:2]
>>> b
array([1, 3])
>>> a>5
array([False, False, False, False, False, False, True, True, True])
>>> a[a>5]
array([6, 7, 8])
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
数组排序--np.argsort()函数
函数原型为
argsort(a, axis=-1, kind='quicksort', order=None)
数组本身不变,返回轴axis从小到大排序的下标数组,默认为行
axis = 0 返回数组每一列从小到大的索引值
kind参数可取值‘quicksort’、‘mergesort’、‘heapsort’或‘stable’,分别代表快速排序、归并排序、堆排序、稳定排序。默认为快速排序,可根据排序需要选择。
示例
>>> index_row = np.argsort(a)
>>> index_column = np.argsort(a,axis=0)
>>> a
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> index_row
array([[0, 1, 2],
[0, 1, 2],
[0, 1, 2]], dtype=int64)
>>> index_column
array([[0, 0, 0],
[1, 1, 1],
[2, 2, 2]], dtype=int64)
数据处理方法--np.char.replace(a, old, new, count=None)
>>> a = ['$4%','$5%']
>>> a = np.array(a)
>>> a
array(['$4%', '$5%'], dtype='<U3')
>>> a = np.char.replace(a,'$','%')
>>> a
array(['%4%', '%5%'], dtype='<U3')
数据处理方法--np.char.count(a, sub, start=0, end=None)
返回一个数组,其中包含区域 [start, end] 中子字符串 sub 的非重叠出现次数。
>>> a
array(['$4%', '$5%'], dtype='<U3')
>>> loc = '%'
>>> loc_data = np.char.count(a,loc)
>>> loc_data
array([2, 2])
>>> loc_data = np.char.count(a,'4')
>>> loc_data
array([1, 0])
数据处理--去重--np.unique(a)
>>> a = ['4','5','4','5','3']
>>> a = np.array(a)
>>> a
array(['4', '5', '4', '5', '3'], dtype='<U1')
>>> a = np.unique(a)
>>> a
array(['3', '4', '5'], dtype='<U1')
数据统计与分析
函数 | 描述 | 函数 | 描述 |
min() | 最小值 | max() | 最大值 |
argmax() | 最大值索引 | argmin() | 最小值索引 |
cumsum() | 所有元素累加 | cumprod() | 所有元素累乘 |
sum() | 对数组元素进行求和 | median() | 中位数 |
mean() | 均值 | average() | 加权平均值 |
ptp() | 极差 | var() | 方差 |
std() | 标准差 | cov() | 协方差 |
读取文本文件--loadtxt()方法
numpy.loadtxt(fname, dtype=float, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding='bytes', max_rows=None, *, quotechar=None, like=None)
这里只介绍部分常用的参数
fname:要读取的文件、文件名、列表或生成器等。
dtype:生成数组的数据类型,默认值是 dtype=float。
delimiter:用于分隔值的字符串,默认值为空格。
skiprows:值为整数。文件开头数据描述的存在可能阻碍数据处理,此时可以使用skiprows参数。
comments:字符串或字符串序列,用于指明注释开始的字符,默认值为'#'。
converters:转换器,用于对数据进行预处理。值为函数名或包含键值对“列索引:函数名”的字典。