教程:NumPy教程
阅读笔记:
1.1 axis
ndarray是一个多维数组,比如我们有一个(2,4,3)这样维度的数组,它表示:有2个数组,每一个数组的维度为4行*3列:
取axis = 0时,就相当于所求的数组的结果变成shape(2,4)
取axis = 1时,数组的结果shape(3,4)
取axis = 2时,数组的结果shape(3,2)
1.2 多维数组的操作
ndarray.shape
ndarray.ndim
ndarray.reshape
numpy.itemsize(每个元素类型的字节长度)
1.3 创建数组
np.empty
np.zeros
np.ones
从已有的数组创建:
numpy.asarray
numpy.frombuffer
numpy.fromiter(来自任何可迭代对象)
来自数值范围内的数据:
numpy.arange(给定范围等间隔,默认从0开始,坐闭右开)
numpy.linspace(给定范围和均匀间隔数量,左闭右闭)
numpy.logspace(对数刻度上均匀分布,base的start次幂~base的stop次幂)
1.4 切片
slice(start,stop,step)
多维ndarray切片:
高级和基本索引可以通过使用切片:或省略号...与索引数组组合。
a = np.array([np.nan, 1,2,np.nan,3,4,5])
print a[~np.isnan(a)] #过滤Nan
1.5 数组上的迭代
numpy.nditer
1.6 数组操作
修改形状
numpy.reshape
numpy.ndarray.flat(返回数组上的一维迭代器)
numpy.ndarray.flatten(返回折叠为一维的数组副本,返回一个拷贝副本,内容物理存储在另一个位置,修改副本不会影响原数组)
numpy.ravel(也是将多维数组降为一维,但是返回的是view,相同内存内容的不同视图,修改会影响原数组)
翻转操作
numpy.transpose
numpy.ndarray.T
numpy.rollaxis(numpy.rollaxis的理解)
numpy.swapaxes(交换两个轴)
修改维度
numpy.broadcast
numpy.broadcast_to
numpy.expand_dims(指定位置插入新的轴)
numpy.squeeze(指定位置删除一维条目)
数组连接
numpy.concatenate(沿指定轴连接相同形状的两个或多个数组)
numpy.stack(沿新轴连接数组)
numpy.hstack(水平堆叠)
numpy.vstack(竖直堆叠)
数组分割:
numpy.split
numpy.hsplit
numpy.vsplit
添加/删除元素
numpy.resize
numpy.append
numpy.insert(未提供轴时插入会展开原数组)
numpy.delete
1.7 位操作
numpy.bitwise_and (与)
numpy.bitwise_or(或)
numpy.invert(取反,有符号的整数返回补码)
numpy.left shift(左移,右补0)
numpy.right_shift(右移,左补0)
1.8 字符串函数(封装在numpy.char中)
numpy.char.add(字符串连接)
numpy.char.multiply
numpy.char.center
numpy.char.capitalize
numpy.char.title(首字母大写)
numpy.char.lower
numpy.char.split
numpy.char.splitlines
numpy.char.strip
numpy.char.join
numpy.char.replace
numpy.char.decode
numpy.char.encode
1.9 算数函数
三角函数
numpy.around
numpy.floor(向上取整)
numpy.ceil(向上取整)
1.10 算术运算
numpy.reciprocal(取倒数)
numpy.power
numpy.mod(余数)= numpy.remainder()
1.11 统计运算
numpy.amin
numpy.amax
numpy.ptp(沿轴方向的最大值-最小值)
numpy.percentile
numpy.median
numpy.mean
numpy.average