numpy
数据类型
数据类型 | 描述 |
---|---|
bool_ | 存储为一个字节的布尔值(True, False) |
intc | 相当于C中的int类型, 通常为int32, 或者int64 |
intp | 用于索引的整数, 相当于C中的size_t类型, 通常为int32,或int64 |
int8 | 字节(-128~127) |
int16 | 16位整数(-32768~32767) |
int32 | 32 位整数(-2147483648 ~ 2147483647) |
int64 | 64 位整数(-9223372036854775808 ~ 9223372036854775807) |
uint8 | 8 位无符号整数(0 ~ 255) |
uint16 | 16 位无符号整数(0 ~ 65535) |
uint32 | 32 位无符号整数(0 ~ 4294967295) |
uint64 | 64 位无符号整数(0 ~ 18446744073709551615) |
float_ | float64的简写 |
float16 | 半精度浮点:符号位,5 位指数,10 位尾数 |
float32 | 单精度浮点:符号位,8 位指数,23 位尾数 |
float64 | 双精度浮点:符号位,11 位指数,52 位尾数 |
complex_ | complex128的简写 |
complex64 | 复数,由两个 32 位浮点表示(实部和虚部) |
complex128 | 复数,由两个 64 位浮点表示(实部和虚部) |
numpy
数组创建函数
numpy.empty(shape,)
:
创建指定类型, 指定形状的数组
numpy.zeros(shape,)
:
创建指定形状, 指定类型, 以0填充的数组
numpy.ones(shape,)
:
返回特定大小,以 1 填充的新数组
numpy.fromiter(iterable,)
:
从任何可迭代对象构建一个
ndarray
对象
numpy.arange(start, stop, step,)
:
创建指定起始值,终止值,步长和类型的数组
numpy.linspace(start, stop,num,)
:
在指定范围内创建N个间隔均匀的数值, 并以数组形式返回
numpy.logscale(start, stop, num,)
:
与
numpy.linspace()
类似, 不过这里的参数start和stop表示的是10的幂指数
numpy
数组操作函数
numpy.concatenate((a1,a2,), axis)
:
在指定坐标轴方向上, 连接多个数组
numpy.hstack((a1,a2,))
:
在水平方向上叠加多个数组
numpy.vstack((a1,a2,))
:
在竖直方向上叠加多个数组
numpy.split(ary,n,axis)
:
在指定坐标轴方向上将数组平均分成n份
numpy.hsplit(ary,N)
:
将数组ary水平分割为N份
numpy.vsplit(ary,N)
:
将数组ary竖直分割为N份
numpy.append(arr,values,axis)
:
将values在axis方向上添加到arr
numpy.unique(arr,)
:
返回arr中的去重数组
np.tile(a,reps)
:
对数组a行进reps次数的复制
# input
import numpy as np
a=np.arange(4).reshape(2,2)
a=np.tile(a,(2,3))
print(a)
# output
[[0 1 0 1 0 1]
[2 3 2 3 2 3]
[0 1 0 1 0 1]
[2 3 2 3 2 3]]
numpy
位操作函数
np.binary_repr(num, width=None)
:
将一个整数转换为二进制表示
numpy.bitwise_and(a,b)
:
对数组元素执行位与操作
numpy.bitwise_or()
:
对数组元素执行位或操作
numpy.invert(a,)
:
计算位非
numpy.left_shift(a,n)
:
向左移动二进制表示的n位
numpy.right_shift(a,n)
:
向右移动二进制表示的n位
numpy
字符串操作函数
numpy
字符串函数是对Python字符串函数的包装
numpy.char.add()
:
函数执行按元素的字符串连接
numpy.char.multiply()
:
执行多重连接
numpy.char.center()
:
此函数返回所需宽度的数组,以便输入字符串位于中心,并使用fillchar在左侧和右侧进行填充
numpy.char.capitalize()
:
返回字符串的副本,其中第一个字母大写
numpy.char.title()
:
返回输入字符串的按元素标题转换版本,其中每个单词的首字母都大写
numpy.char.lower()
:
返回一个数组,其元素转换为小写
numpy.char.upper()
:
返回一个数组,其元素转换为大写
numpy.char.split()
:
返回输入字符串中的单词列表, 无法使用正则表达式进行模式匹配
numpy.char.splitlines()
:
返回数组中元素的单词列表,以换行符分割
numpy.char.strip()
:
返回数组的副本,其中元素移除了开头或结尾处的特定字符
numpy.char.join()
:
返回一个字符串,其中单个字符由特定的分隔符连接
numpy.char.replace()
:
返回字符串副本,其中所有字符序列的出现位置都被另一个给定的字符序列取代
numpy.char.decode()
:
对数组中的字符串使用特定编码
numpy.char.encode()
:
对数组中的每个元素使用某种编码方式解码
numpy
数学函数
numpy.sin()
, numpy.cos()
, numpy.tan()
:
输入需要是弧度值
numpy.arcsin()
, numpy.arccos()
, numpy.arctan()
:
返回值是弧度值
numpy.degrees()
:
可以将弧度值转化为角度值
numpy.around(a,decimal)
:
将a四舍五入到要求的精度
numpy.floor(a,)
:
返回不大于输入参数的最大整数
numpy.ceil(a,)
:
返回不小于出入参数的最小整数
numpy.reciprocal(a,)
:
返回参数逐元素的倒数
numpy.power(a,b)
:
将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂
numpy.mod(a,b)
:
返回输入数组中相应元素的除法余数
numpy
统计函数
numpy.max(a,axis,)
,numpy.min(a,axis,)
:
返回a在axis方向上的最大/小值
numpy.argmax(a,axis,)
,numpy.argmin(a,axis,)
:
返回a在axis方向上的最大/小值的索引
numpy.ptp(a,axis,)
:
返回沿轴的值的范围(最大值 - 最小值)
numpy.percentile(a, q, axis)
:
返回数组a在axis方向上q分位数值
numpy.median(a,axis,)
:
返回数组a在axis方向上的中值
numpy.mean(a,axis,)
:
返回数组在axis方向上各元素的算术平均值
numpy.average(a,axis,weights)
:
返回数组在axis方向上的加权平均数
numpy.std(a,axis,)
:
返回数组在axis方向上的标准差
numpy.var(a,axis,)
:
返回数组在axis方向上的方差
numpy
排序, 搜索和计数函数
numpy 提供的排序算法
种类 | 速度 | 最坏情况 | 工作空间 | 稳定性 |
---|---|---|---|---|
quicksort (快速排序) |
1 | O(n^2) | 0 | 否 |
mergersort (归并排序) |
2 | O(n*log(n)) | ~n/2 | 是 |
heapsort (堆排序) |
3 | O(n*log(n)) | 0 | 否 |
numpy.sort(a,axis,)
:
在指定坐标轴上对数组a进行升序排列
numpy.argsort(a,axis,)
:
在指定坐标轴上进行升序排列, 返回各元素在排序之后的索引
numpy.max(a,axis,), numpy.min(a,axis,)
:
返回在指定坐标轴方向上的最大/小值
numpy.argmax(a,axis,), numpy.argmin(a,axis,)
:
返回在指定坐标轴方向上的最大/小值的索引
numpy.nonzero(a,)
:
返回数组a中的非零元素的索引
numpy.where(condition,x,y)
:
当condition为True时, 返回x; 当condition为False时, 返回y
numpy
线性代数函数
numpy.dot()
:
返回两个数组的点积
numpy.vdot()
:
返回两个向量的点积
numpy.inner()
:
返回一维数组的向量内积
numpy.matmul()
:
返回两个数组的矩阵乘积