数据分析 numpy数组_07 函数
1、NumPy 字符串函数
函数 | 描述 |
---|---|
add(x1, x2) |
对两个数组的逐个字符串元素进行连接,`x1` and `x2` must have the same shape |
multiply() | 返回按元素多重连接后的字符串, |
center() |
居中字符串,str: 字符串, 长度,fillchar: 填充字符 |
capitalize() |
将字符串第一个字母转换为大写 |
title() |
将字符串的每个单词的第一个字母转换为大写 |
lower() |
数组元素转换为小写 |
upper() |
数组元素转换为大写 |
split() |
指定分隔符对字符串进行分割,并返回数组列表 |
splitlines() |
返回元素中的行列表,以换行符分割, , , 都可用作换行符 |
strip() |
移除元素开头或者结尾处的特定字符 |
join() |
通过指定分隔符来连接数组中的元素 |
replace() |
使用新字符串替换字符串中的所有子字符串 |
decode() |
数组元素依次调用str.decode,函数对编码的元素进行 str.decode() 解码 |
encode() |
数组元素依次调用str.encode, |
2、NumPy 数学函数
NumPy 包含大量的各种数学运算的函数,包括三角函数,算术运算的函数,复数处理函数
三角函数,
舍入函数numpy.around(a,decimals),decimals: 舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置
numpy.floor() 返回数字的下舍整数
numpy.ceil() 返回数字的上入整数
import numpy as np x = np.around([1, 2, 3, 6], decimals=1) print(x)
import numpy as np x = np.around([1, 2, 3, 36, 66], decimals=-2) print(x)
3、NumPy 算术函数
NumPy 算术函数包含简单的加减乘除: add(),subtract(),multiply(),divide(),
numpy.reciprocal() 函数返回参数逐元素的倒数,
numpy.power(x1, x2
) 函数将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂,
numpy.mod(x1, x2
)、numpy.remainder(x1, x2
)计算输入数组中相应元素的相除后的余数等。
注;需要注意的是数组必须具有相同的形状或符合数组广播规则
4、NumPy 统计函数
NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等;
np.amax():指定轴axis,则计算该轴的最值,没有指定axis,则计算真个array的最值。
umpy.ptp()函数计算数组中元素极差,axis关系一致。
numpy.percentile(a, q, axis)百分位数是统计中使用的度量,表示小于这个值的观察值的百分比。
numpy.median() 函数用于计算数组 a 中元素的中位数(中值)。
numpy.mean()函数返回数组中元素的算术平均值。 如果提供了轴,则沿其计算。
numpy.average() 函数根据在另一个数组中给出的各自的权重计算数组中元素的加权平均值。如果没有给权重,则默认n个元素的每个元素的权重均一致,相当于mean()。
numpy.var()函数计算方差,mean((x - x.mean())** 2)
numpy.std()函数计算标准差,sqrt(mean((x - x.mean())** 2))
5、NumPy 排序、条件刷选函数
种类(kind) | 速度 | 最坏情况 | 工作空间 | 稳定性 |
---|---|---|---|---|
'quicksort' (快速排序)-默认 |
1 | O(n^2) |
0 | 否 |
'mergesort' (归并排序) |
2 | O(n*log(n)) |
~n/2 | 是 |
'heapsort' (堆排序) |
3 | O(n*log(n)) |
0 | 否 |
numpy.sort() 函数返回输入数组的排序副本。
numpy.sort(a, axis, kind, order),order: 如果数组包含字段,则是要排序的字段
import numpy as np dt = np.dtype([('name', 'S10'), ('age', 'i1')]) a = np.array([("raju", 26), ("anil", 25), ("ravi", 17), ("amar", 27)], dtype=dt) print(np.sort(a, order='name')) # [(b'amar', 27) (b'anil', 25) (b'raju', 26) (b'ravi', 17)] 默认 # [(b'amar', 27) (b'anil', 25) (b'raju', 26) (b'ravi', 17)] order='name'
numpy.argsort() 函数返回的是数组值从小到大的索引值。
numpy.lexsort()函数用于对多个序列进行排序。把它想象成对电子表格进行排序,每一列代表一个序列,排序时优先照顾靠后的列,返回的是数组值从小到大的索引值。首先进行最后一列的排序,如果在最后一列存在相等的情况,则在判断在倒数第二列在这两个相等索引位的元素的大小关系才能得出最终的输出值。
import numpy as np nm = ('aa', 'aa', 'ab', 'ab') dv = ('f.y.', 's.y.', 's.y.', 'f.y.') ind = np.lexsort((dv, nm)) print(ind)
msort、sort_complex、partition、argpartition
函数 | 描述 |
---|---|
msort(a) | 数组按第一个轴排序,返回排序后的数组副本。np.msort(a) 相等于 np.sort(a, axis=0)。 |
sort_complex(a) | 对复数按照先实部后虚部的顺序进行排序,并返回复数。 |
partition(a, kth, axis, kind, order) | 指定一个数,对数组进行分区,小于a,大于b,在a,b之间的位置可以分别确定在‘左,中,右’,但是里面的数的排序呢? |
argpartition(a, kth, axis, kind, order) | 可以通过关键字 kind 指定算法沿着指定轴对数组进行分区,arr[np.argpartition(arr, [2,3])[2]] |
numpy.argmax() 和 numpy.argmin()函数分别沿给定轴返回最大和最小元素的索引!
numpy.nonzero() 函数返回输入数组中非零元素的索引。
numpy.where() 函数返回输入数组中满足给定条件的元素的索引。
numpy.extract() 函数根据某个条件从数组中抽取元素,返回满条件的元素
import numpy as np
x = np.arange(9.).reshape(3, 3)
# 定义条件, 选择偶数元素 condition = np.mod(x,2) == 0 print ('按元素的条件值:') print (condition) print ('使用条件提取元素:') print (np.extract(condition, x))