厦门360搜索推广,推广关键词优化公司,爱站网源码,wordpress 免费版广告Python数据分析之Numpy学习 2 —— NumPy 基础学习NumPy(Numerical Python)是高性能科学计算和数据分析的基础包。NumPy的主要对象是同构数据多维容器(homogeneous multidimensional array)——ndarray#xff0c;也就是说每一个ndarray都是一个相同类型元素组成的表格(二维)。…Python数据分析之Numpy学习 2 —— NumPy 基础学习NumPy(Numerical Python)是高性能科学计算和数据分析的基础包。NumPy的主要对象是同构数据多维容器(homogeneous multidimensional array)——ndarray也就是说每一个ndarray都是一个相同类型元素组成的表格(二维)。在NumPy中维度(dimensions)叫做轴(axes)轴的个数叫做秩(rank)。轴这个概念必须牢记否则放弃吧。首先轴是从0开始计的0代表最高维次高维是1以此类推。约定import numpy as npndarray对象的常用属性创建ndarray函数说明np.array(data,dtypeNone, orderNone)将数据data(列表、元组、数组或其他序列类型)转换为ndarray。要么推断出dtype要么显示指定dtype。默认直接复制数据。order默认是A(可能是C可能是F还可能是其它)np.asarray(data, dtypeNone, orderNone)将输入数据转换为ndarraydata同上还可以是ndarray如果是ndarray就不进行复制。dtype同上order是重塑中行优先C还是列优先F默认C语言风格。np.arange(10,30,5,dtypeNone)开始结束步长和内置的range相同np.ones( (2,3,4), dtypeNone) 、np.ones_like(a)根据指定的形状和dtype创建一个全1的数组。ones_like以另一个数组为参数创建形状和dtype相同的全1数组。np.zeros() 、np.zeros_like()全0数组类似ones和ones_like。np.empty() 、np.empty_like()创建数组只分配内存空间但不填充任何值所以返回的是垃圾值。类似ones和ones_like。np.eye(N, MNone, k0, dtype) 、np.identity(n, dtypeNone)eye创建的是N*M的数组默认MNk取整数正数对角线向上移k负数对角线向下移k。identity创建一个N*N单位矩阵(对角线为1其余全0)的数组示例 arraynumpy.array(object, dtypeNone, copyTrue, orderNone, subokFalse, ndmin0)import numpy as npa np.array([1,2,3]) print a输出如下[1, 2, 3]# 多于一个维度 import numpy as npa np.array([[1, 2], [3, 4]]) print a输出如下[[1, 2][3, 4]]# dtype 参数 import numpy as npa np.array([1, 2, 3], dtype complex) print a输出如下[ 1.0.j, 2.0.j, 3.0.j]索引切片和迭代一维数组可以被索引、切片和迭代就像列表和其它Python序列。 a arange(10)**3 aarray([ 0, 1, 8, 27, 64, 125, 216, 343, 512, 729]) a[2]8 a[2:5]array([ 8, 27, 64]) a[:6:2] -1000 # equivalent to a[0:6:2] -1000; from start to position 6, exclusive, set every 2nd element to -1000 aarray([-1000, 1, -1000, 27, -1000, 125, 216, 343, 512, 729]) a[ : :-1] # reversed aarray([ 729, 512, 343, 216, 125, -1000, 27, -1000, 1, -1000]) for i in a:... print i**(1/3.),...nan 1.0 nan 3.0 nan 5.0 6.0 7.0 8.0 9.0多维数组可以每个轴有一个索引。这些索引由一个逗号分隔的元组给出。 def f(x,y):... return 10*xy... b fromfunction(f,(5,4),dtypeint) barray([[ 0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33], [40, 41, 42, 43]]) b[2,3]23 b[0:5, 1] # each row in the second column of barray([ 1, 11, 21, 31, 41]) b[ : ,1] # equivalent to the previous examplearray([ 1, 11, 21, 31, 41]) b[1:3, : ] # each column in the second and third row of barray([[10, 11, 12, 13], [20, 21, 22, 23]])组合(stack)不同的数组几种方法可以沿不同轴将数组堆叠在一起 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.]])函数column_stack以列将一维数组合成二维数组它等同与vstack对一维数组。 column_stack((a,b)) # With 2D arraysarray([[ 1., 1., 3., 3.], [ 5., 8., 6., 0.]]) aarray([4.,2.]) barray([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.]])row_stack函数另一方面将一维数组以行组合成二维数组。对那些维度比二维更高的数组hstack沿着第二个轴组合vstack沿着第一个轴组合,concatenate允许可选参数给出组合时沿着的轴。函数和方法(method)总览这是个NumPy函数和方法分类排列目录。这些名字链接到NumPy示例,你可以看到这些函数起作用。[^5]创建数组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