zoukankan      html  css  js  c++  java
  • Numpy基本操作

    NumPy是Python中科学计算的基础软件包。
    它是一个提供多了维数组对象,多种派生对象(如:掩码数组、矩阵)以及用于快速操作数组的函数及API;
    它包括数学、逻辑、数组形状变换、排序、选择、I/O 、离散傅立叶变换、基本线性代数、基本统计运算、随机模拟等等。

    2 Numpy数组

    NumPy数组在创建时具有固定的大小, 更改ndarray的大小将创建一个新数组并删除原来的数组。
    NumPy数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。
    NumPy数组有助于对大量数据进行高级数学和其他类型的操作。

    3 np基本操作

    3.1 np常用数据类型

    int 8/16/32/64
    float 16/32/64
    complex64/128 (64指实部虚部皆32位浮点数)
    object(该类型与MATLAB cell相似)

    3.2 np数组属性

    ndim/ shape/ size/ dtype/ itemsize/ real/ imag

    秩/n行m列/元素总个数/ 元素类型/ 元素大小(字节)/元素实部/ 元素虚部

    3.3 创建np数组

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    np.array(list/tuple,dtype)
    # 指定始末和步长生成数组
    np.arange(min,max,step,dtype)
    # 全空与全0/1数组
    np.empty(shape,dtype)
    np.zeros(shape,dtype)
    np.ones(shape,dtype)
    # 随机数组
    np.random.rand(n) #生成0,1之间的n个随机数
    np.random.randn(n)#生成0,1之间的n个随机数,服从正态分布
    np.random.randint(low, high, size) #返回随机的整数
    np.random.random_integers(low, high, size) #返回随机的整数
    np.random.shuffle(a) #类似洗牌,打乱顺序,a变了
    np.random.permutation(a) #打乱顺序,返回一个随机排列,a不变

    3.4 np切片与索引

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 单个元素
    a[i,j]
    # 指定始末和步长
    a[i:j] a[i:j:step]
    # 指定某行某列
    a[i,:]/a[:,j]
    # 从第i+1个元素至末尾
    a[i:]
    # 数组索引[i1,j1],...
    a[[i1,i2,...],[j1,j2,...]]
    # 布尔索引
    a[T/F]

    3.5 np数组操作

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # 修改形状大专栏  Numpy基本操作n>
    np.reshape(a,[m,n])
    # 转置
    np.transpose(a)/ a.T
    # 拼接
    np.concatenate((a1,a2,...),axis=0/1) #axis控制纵横
    np.hstack((a1,a2,...)) #左右
    np.vstack((a1,a2,...)) #上下
    # 修剪:x>max->max,x<min->min,中间元素不变
    np.clip(a,min,max)
    # 分块
    np.split(a,num,axis=0/1) #均匀分块:num分割块数,axis控制横纵
    np.array_split(a,num,axis=0/1) #支持非均匀分块
    # 排序:axis列行,kind排序方法,快排/归并/堆排
    np.sort(a,axis=0/1,kind)
    np.argsort(a) #返回的是数组值从小到大的索引值。

    3.6 np统计/算术函数

    1
    2
    3
    4
    5
    6
    7
    # 统计函数
    np.amax/amin/median/mean/var/ptp(def:max-min)
    # 三角函数
    np.sin/cos/tan/arcsin/arccos/arctan
    np.degree #弧度->角度
    # 取整 decimals舍入的小数位数
    np.around(a,decimals)/floor/ceil

    3.7 np线性代数

    1
    2
    3
    4
    5
    6
    7
    8
    # 矩阵相乘
    np.dot(A,B) #A*B是对应元素相乘,dot是矩阵相乘
    # 点积
    np.vdot(A,B) #A*B所有元素之和
    # 行列式
    np.linalg.det()
    # 矩阵的逆
    np.linalg.inv()

    3.8 np输入输出

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 保存单个数组
    numpy.save(file, arr) #后缀’.npy‘
    # 保存多个数组(args: 要保存的数组;kwds: 要保存的数组使用关键字名称)
    numpy.savez(file, *args, **kwds)
    # 加载
    np.load(file)
    # 以文本形式保存或加载
    np.loadtxt(FILENAME, dtype=int, delimiter=' ')
    np.savetxt(FILENAME, a, fmt="%d", delimiter=",")

    参考资料

    Numpy 中文文档
    莫烦Numpy&pandas讲解
    菜鸟教程

  • 相关阅读:
    static-keys.txt 翻译
    sqlserver sp_executesql 返回值
    socket上传文件
    threadingSocket 服务器端可以同时接受多个客户端的访问
    python ftp上传
    Python sys模块
    linux系统相关
    下载论文,电子书籍(中英文),专利,数据库和课件
    如何设计一个合理、灵活的深度学习训练框架
    使用小米电视的第一天
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12370800.html
Copyright © 2011-2022 走看看