Numpy学习笔记4-常用函数
来源:互联网 发布:桌面便签提醒软件 编辑:程序博客网 时间:2024/06/03 14:34
numpy.ma.fromfunction
numpy.ma.fromfunction(function, shape, **kwargs) = <numpy.ma.core._convert2ma instance at 0x7f63b516d4d0>
返回数组的坐标值经过function运算之后的数组:
例如:
>>> b = np.fromfunction(lambda x,y,z:x*100+y*10+z,(3,3,3),dtype=int)>>> barray([[[ 0, 1, 2], [ 10, 11, 12], [ 20, 21, 22]], [[100, 101, 102], [110, 111, 112], [120, 121, 122]], [[200, 201, 202], [210, 211, 212], [220, 221, 222]]])
b中的数组是通过它的坐标值运算得到的,即*100+y*10+z
Rounding(数据的凑整,诸如四舍五入)
around(a[, decimals, out]) Evenly round to the given number of decimals.
round_(a[, decimals, out]) Round an array to the given number of decimals.
rint(x[, out]) Round elements of the array to the nearest integer.
fix(x[, y]) Round to nearest integer towards zero.
floor(x[, out]) Return the floor of the input, element-wise.
ceil(x[, out]) Return the ceiling of the input, element-wise.
trunc(x[, out]) Return the truncated value of the input, element-wise.
具体细节参考文档3.20.3 Rounding
形状操作:
一个数组的形状由它每个轴上的元素个数给出:
>>> a = floor(10*random.random((3,4)))>>> aarray([[ 7., 5., 9., 3.], [ 7., 2., 7., 8.], [ 6., 8., 3., 2.]])>>> a.shape(3, 4)一个数组的形状可以被多种命令修改:
>>> a.ravel() # flatten the arrayarray([ 7., 5., 9., 3., 7., 2., 7., 8., 6., 8., 3., 2.])>>> a.shape = (6, 2)>>> a.transpose()array([[ 7., 9., 7., 7., 6., 3.], [ 5., 3., 2., 8., 8., 2.]])
由
ravel()
展平的数组元素的顺序通常是“C风格”的,就是说,最右边的索引变化得最快,所以元素a[0,0]之后是a[0,1]。如果数组被改变形状(reshape)成其它形状,数组仍然是“C风格”的。NumPy通常创建一个以这个顺序保存数据的数组,所以 ravel()
将总是不需要复制它的参数 3 。但是如果数组是通过切片其它数组或有不同寻常的选项时,它可能需要被复制。函数 reshape()
和 ravel()
还可以被同过一些可选参数构建成FORTRAN风格的数组,即最左边的索引变化最快。reshape
函数改变参数形状并返回它,而 resize
函数改变数组自身。
>>> aarray([[ 7., 5.], [ 9., 3.], [ 7., 2.], [ 7., 8.], [ 6., 8.], [ 3., 2.]])>>> a.resize((2,6))>>> aarray([[ 7., 5., 9., 3., 7., 2.], [ 7., 8., 6., 8., 3., 2.]])
数组堆叠操作:
>>> a = floor(10*random.random((2,2)))>>> aarray([[ 1., 1.], [ 5., 8.]])>>> b = floor(10*random.random((2,2)))>>> barray([[ 3., 3.], [ 6., 0.]])>>> vstack((a,b))array([[ 1., 1.], [ 5., 8.], [ 3., 3.], [ 6., 0.]])>>> hstack((a,b))array([[ 1., 1., 3., 3.], [ 5., 8., 6., 0.]])其中vstack将其纵向堆叠,hstack将其横向堆叠。
函数
column_stack
以列将一维数组合成二维数组,它等同与 vstack
对一维数组。>>> column_stack((a,b)) # With 2D arraysarray([[ 1., 1., 3., 3.], [ 5., 8., 6., 0.]])>>> a=array([4.,2.])>>> b=array([2.,8.])>>> a[:,newaxis] # This allows to have a 2D columns vectorarray([[ 4.], [ 2.]])>>> column_stack((a[:,newaxis],b[:,newaxis]))array([[ 4., 2.], [ 2., 8.]])>>> vstack((a[:,newaxis],b[:,newaxis])) # The behavior of vstack is differentarray([[ 4.], [ 2.], [ 2.], [ 8.]])
复制和视图
完全不拷贝
简单的赋值不拷贝数组对象或它们的数据。
>>> a = arange(12)>>> b = a # no new object is created>>> b is a # a and b are two names for the same ndarray objectTrue>>> b.shape = 3,4 # changes the shape of a>>> a.shape(3, 4)
视图(view)和浅复制
不同的数组对象分享同一个数据。视图方法创造一个新的数组对象指向同一数据。>>> c = a.view()>>> c is aFalse>>> c.base is a # c is a view of the data owned by aTrue>>> c.flags.owndataFalse>>>>>> c.shape = 2,6 # a's shape doesn't change>>> a.shape(3, 4)>>> c[0,4] = 1234 # a's data changes>>> aarray([[ 0, 1, 2, 3], [1234, 5, 6, 7], [ 8, 9, 10, 11]])
从特征上看a和c是不同形态的数组,但是a和c是同属一块数据区域,类似于opencv中Mat的浅拷贝
深复制
这个复制方法完全复制数组和它的数据。
>>> d = a.copy() # a new array object with new data is created>>> d is aFalse>>> d.base is a # d doesn't share anything with aFalse>>> d[0,0] = 9999>>> aarray([[ 0, 10, 10, 3], [1234, 10, 10, 7], [ 8, 10, 10, 11]])
函数和方法(method)总览(详细参考文档)
创建数组
arange, array, copy, empty, empty_like, eye, fromfile, fromfunction, identity, linspace, logspace, mgrid, ogrid, ones, ones_like, r , zeros, zeros_like
转化
astype, atleast 1d, atleast 2d, atleast 3d, mat
操作
array split, column stack, concatenate, diagonal, dsplit, dstack, hsplit, hstack, item, newaxis, ravel, repeat, reshape, resize, squeeze, swapaxes, take, transpose, vsplit, vstack
询问
all, any, nonzero, where
排序
argmax, argmin, argsort, max, min, ptp, searchsorted, sort
运算
choose, compress, cumprod, cumsum, inner, fill, imag, prod, put, putmask, real, sum
基本统计
cov, mean, std, var
基本线性代数
cross, dot, outer, svd, vdot
0 0
- Numpy学习笔记4-常用函数
- Numpy 的常用函数[学习笔记]
- Numpy学习笔记——常用函数
- numpy常用函数笔记
- NumPy学习指南 学习笔记(二) 常用函数
- 《numpy学习指南》学习笔记——常用函数
- NumPy学习笔记 (4)
- Python-Numpy(4)常用函数
- NumPy学习 -- 002_常用函数
- 机器学习中常用的Numpy函数
- Numpy学习笔记之ndarray通用函数
- Numpy学习笔记——便捷函数
- 【python学习笔记】numpy.nonzero()函数
- Numpy常用函数
- Numpy:常用函数
- numpy常用函数
- numpy常用函数
- 熟悉 NumPy 常用函数
- 关于两个日期间隔计算及日期其他相关
- 计算机机械硬盘的结构和工作原理
- Dijkstra算法的认识
- p2p半分布式开源项目调研:
- shell 与windows下的cmd区别
- Numpy学习笔记4-常用函数
- ios 根据类名获取类名的属性
- 冒泡排序
- 关于 AfxSocketInit() 的使用
- Visual Studio 2013: Error: 无法打开源文件 "iostream"
- Xcode出现could not build module foundation错误 解决方案
- Android开发中模拟Home键操作和关闭手机软键盘
- EOR逻辑异或指令
- 采访:关于 Go 语言和《Go Web编程》