numpy笔记
.
Numpy创建数组
从无到有
numpy.empty(shape,dtype=int,order=’C’)
创建一个未初始化的数组
shape:形状
dtype:数据类型
order:”C”行优先,”F”列优先
numpy.zeros(shape,dtype=int,order=’C’)
创建全0数组
numpy.ones(shape,dtype=int,order=’C’)
创建全1数组
从已有创建新的
numpy.asarray(a,dtype=float,order=’C’)
a可以是列表
numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)从流读取
count:默认-1读取所有
offset:读取位置,默认为0
numpy.fromiter(iterable,dtype,count=-1)
从可迭代对象读取
从数值范围创建新的
numpy.arange(start,stop,step,dtype)
start:默认为0
stop:终止值(不包含)
step:步长,默认为1
dtype:数据类型
numpy.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)
endpoint:是否包含终止值,默认为True
retstep:是否包含步长
numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
start:起始阶
stop:终止阶
base:底数
花式索引
1 | import numpy as np |
多个数组索引
1 | import numpy as np |
广播(BroadCast)
当两个数组长度和维数相同,则算术运算是对应位的算术运算
若长度不相同,则将短的扩充到与长的长度相同再运算
规则(来自菜鸟教程):
- 数组拥有相同形状。
- 当前维度的值相等。
- 当前维度的值有一个是 1。
数组迭代
numpy.nditer(a,order=’C’)
迭代顺序C风格行优先,F风格列优先
数组操作
修改数组形状
函数 | 作用 |
---|---|
reshape | 不改变数据条件下修改形状 |
flat | 数组元素迭代器 |
flatten | 返回一份数组拷贝,对拷贝做修改不影响原始数据 |
ravel | 返回展开数组 |
numpy.reshape(arr,newshape,order=’C’)
arr:原数组
newshape:整数或整数数组
order:C按行,F按列,A原顺序,K元素在内存中的顺序
numpy.ndarray.flat
1 | import numpy as np |
numpy.ndarray.flatten(order=’C’)
1 | 8).reshape(2,4) a=np.arange( |
numpy.ravel(a,order=’C’)
将数组展平
1 | 1,65).reshape(4,4,4) b=np.arange( |
翻转数组
numpy.trranspose(arr,axes)
arr:要操作的数组
axes:对应维度
numpy.ndarray.T
与上相同
numpy.rollaxis(arr,axis,start)
arr:数组
axis:要向后滚动的轴
start:默认为0
numpy.swapaxes(arr,axis1,axis2)
arr:输入的数组
axis1:第一个轴
axis2:第二个轴
修改维度
numpy.broadcast_to(array,shape,subok)
将array广播到shape形状
numpy.expand_dims(arr,axis)
在指定位置插入新的轴
numpy.squeeze(arr,axis)
从arr中删除axis维坐标
连接数组
numpy.concatenate((a1,a2,…),axis)
沿现有轴连接形状相同的两个或多个数组
numpy.stack(arrays,axis)
沿新轴连接新序列
numpy.hstack(arrays)
水平堆叠
numpy.vstack(arrays)
垂直堆叠
分割数组
numpy.split(ary,indices_or_sections,axis)
ary:数组
indices_or_sections:如果是整数,为分成多少部分,如果是数组,则是在哪里开始分
axis:沿哪个方向切分
numpy.hsplit(ary,nums)
水平切分
numpy.vsplit(ary,nums)
垂直切分
数组元素添加与删除
numpy.resize(arr,shape)
与reshape作用差不多
numpy.append(arr,values,axis=None)
当axis为None时,返回的是一维数组
numpy.insert(arr,obj,values,axis)
未提供axis数组会被展开
numpy.delete(arr,obj,axis)
未传递axis数组会被展开
numpy.unique(arr,return_index,return_inverse,return_count)
arr:输入数组
return_index:返回新数组元素在旧列表中的位置
return_inverse:返回旧数组元素在新列表中的位置
return_count:返回每个元素的个数
位运算
bitwise_and对元素数组执行位运算
bitwise_or对元素数组执行或运算
invert按位取反
left_shift向左移动二进制
right_shift向右移动二进制
binary_repr二进制表示
字符串函数
字符串函数与python自带的string方法类似
数学函数
sin、cos、tan、arcsin、arccos、arctan、degrees、around、floor(小于或等于指定表达式的最大整数,向下取整)、ceil(向上取整)
算术函数
add、subtract、multiply、divide、reciprocal(倒数)、power(幂)、mod、remainder(取余)
统计函数
amin、amax(计算指定轴的最小最大值)ptp(计算数组元素最大值与最小值的差值)
percentile(百分位数)
1 | import numpy as np |
median(中位数)、mean(平均数)、average(加权平均数)、std(标准差)、var(方差)