美文网首页
Python学习笔记(5):NumPy库入门1

Python学习笔记(5):NumPy库入门1

作者: TOP生物信息 | 来源:发表于2019-03-12 01:36 被阅读0次
    1. 列表与数组

    列表:数据类型可以不同;
    数组:数据类型相同

    2. ndarray: NumPy的数组对象

    NumPy是SciPy、Pandas库的基础

    #1. 安装
    $ pip3 install numpy
    #我的服务器下显示已安装
    Requirement already satisfied: numpy in ./miniconda3/lib/python3.6/site-packages (1.15.4)
    
    #2. 引用: import numpy as np
    $ python3 #进入交互式编程环境
    >>> import numpy as np
    >>> def npsum():
    ...     a = np.array([0,1,2,3])
    ...     b = np.array([3,2,1,0])
    ...     c = a**2 + b**2
    ...     return c
    ... 
    >>> print(npsum())
    [9 5 5 9]
    
    3. ndarray实例

    ndarray在程序中叫array, np.array()用于创建一个ndarray数组。

    >>> a = np.array([[1,2,3],
    ... [4,5,6]])
    >>> a
    array([[1, 2, 3],
           [4, 5, 6]])
    >>> print(a)
    [[1 2 3]
     [4 5 6]]
    
    4. ndarray对象的属性

    .ndim -- 轴/维度的数量
    .shape -- 几行几列
    .size -- 元素的个数
    .dtype -- 元素类型
    .itemsize -- 每个元素字节大小

    >>> a.ndim
    2
    >>> a.shape
    (2, 3)
    >>> a.size
    6
    >>> a.dtype
    dtype('int64')
    >>> a.itemsize
    8
    
    5. ndarray数组的创建方法
    1. 从Python列表、元组类型创建ndarray数组
      x = np.array(list/tuple[, dtype=np.float32])
      eg: x = np.array([[1,2],(3,4)])
    2. 使用NumPy中的函数创建:np.arrange(n)生成0到n-1、np.full(shape,val)根据shape元组生成元素值都为val的数组、np.full_like(a,val)根据数组a的形状生成数组、np.linspace()
    6. ndarray数组的维度变换和类型变换
    方法 说明
    .reshape(shape) 不改变数组元素,返回shape形状的数组,原数组不变
    .resize(shape) 与.reshape()功能一致,但修改原数组
    .swapaxes(ax1,ax2) 将数组n个维度中两个维度进行调换
    .flatten() 对数组进行降维,返回折叠后的一维数组,原数组不变
    .astype(new_type) 创建新的数组(原始数据的拷贝),即使两个类型一致
    >>> a=np.ones((2,3),dtype=np.int32)
    >>> print(a)
    [[1 1 1]
     [1 1 1]]
    >>> a.reshape((6))
    array([1, 1, 1, 1, 1, 1], dtype=int32)
    >>> print(a)
    [[1 1 1]
     [1 1 1]]
    >>> a.resize(6)
    >>> print(a)
    [1 1 1 1 1 1]
    >>> a.astype(np.float)
    array([ 1.,  1.,  1.,  1.,  1.,  1.])
    >>> print(a)
    [1 1 1 1 1 1]
    
    7. 数组的索引和切片
    >>> b=np.array([9,8,7,6,5,4,3,2,1,0])
    >>> b[2]
    7
    >>> b[0:6:2] #起始编号:终止编号(不含):步长
    array([9, 7, 5])
    
    >>> b=b.reshape(2,5)
    >>> print(b)
    [[9 8 7 6 5]
     [4 3 2 1 0]]
    >>> b[1,2] #一个维度一个索引值,逗号分隔,[]括起来
    2
    >>> b[1,:]
    array([4, 3, 2, 1, 0]) #一个维度全选用:
    >>> b[1,::2] #此时也可以结合步长使用
    array([4, 2, 0])
    
    8. 数组与标量之间的运算

    数组与标量之间的运算作用于数组的每一个元素

    >>> b.mean()
    4.5
    >>> b-b.mean()
    array([[ 4.5,  3.5,  2.5,  1.5,  0.5],
           [-0.5, -1.5, -2.5, -3.5, -4.5]])
    
    9. NumPy一元/二元运算函数

    对ndarray中的数据执行元素级运算的函数

    一元函数
    函数 说明
    np.abs(x) np.fabs(x) 计算数组各元素的绝对值
    np.sqrt(x) 计算数组各元素的平方根
    np.square(x) 计算数组各元素的平方
    np.log(x) np.log10(x) np.log2(x) 计算数组各元素的自然对数、10底对数和2底对数
    np.ceil(x) np.floor(x) 计算数组各元素的ceiling值 或 floor值
    np.rint(x) 计算数组各元素的四舍五入值
    np.modf(x) 将数组各元素的小数和整数部分以两个独立数组形式返回
    np.cos(x) np.cosh(x) np.sin(x) np.sinh(x) np.tan(x) np.tanh(x) 计算数组各元素的普通型和双曲型三角函数
    np.exp(x) 计算数组各元素的指数值
    np.sign(x) 计算数组各元素的符号值,1(+), 0, ‐1(‐)
    二元函数
    函数 说明
    + ‐ * / ** 两个数组各元素进行对应运算
    np.maximum(x,y) np.fmax() np.minimum(x,y) np.fmin() 元素级的最大值/最小值计算
    np.mod(x,y) 元素级的模运算
    np.copysign(x,y) 将数组y中各元素值的符号赋值给数组x对应元素
    > < >= <= == != 算术比较,产生布尔型数组

    相关文章

      网友评论

          本文标题:Python学习笔记(5):NumPy库入门1

          本文链接:https://www.haomeiwen.com/subject/vdoysqtx.html