本文介绍的方法均为我在做作业是常用的方法,要是有不对的地方还请大神指正

数组的基本操作

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(aoldnewcount=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(asubstart=0end=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:转换器,用于对数据进行预处理。值为函数名或包含键值对“列索引:函数名”的字典。