博客
关于我
Python数据处理笔记01--numpy数组操作
阅读量:365 次
发布时间:2019-03-05

本文共 2073 字,大约阅读时间需要 6 分钟。

numpy库概述和安装

引言

Python中的列表虽然可以用来存储一组值,但在进行数值计算时效率较低且内存占用较高。这是因为列表需要存储每个元素的指针,而不是直接存储数值。为了弥补这一不足,Python提供了array模块,但其仅支持一维数组且没有丰富的运算功能。因此,numpy库的出现填补了这些空白,提供了高性能的N维数组(ndarray)对象,适合进行数值计算和数据分析。

numpy库的主要功能

numpy是Python中进行科学计算和数据分析的基础库,主要功能包括:

  • 提供高性能的N维数组(ndarray),支持矢量化运算和广播能力。
  • 提供大量标准数学函数,用于隐式快速运算。
  • 提供文件读写工具和内存映射文件操作功能。
  • 支持线性代数、随机数生成、傅里叶变换等高级功能。
  • 提供与C、C++、Fortran等语言代码交互的工具。
  • numpy库的应用场景

    numpy广泛应用于以下领域:

  • 机器学习模型开发:用于矩阵运算,如矩阵乘法和加法。
  • 图像处理和计算机图形学:用于处理和旋转图像。
  • 数学任务:支持数值积分、微分、内插和外推等操作。
  • numpy安装方法

    安装numpy最简单的方法是通过pip工具。以下是详细的安装步骤:

    python -m pip install --user numpy

    --user选项表示安装在当前用户目录下,而不是系统目录。

    numpy数组操作

    ndarry概述

    ndarray是numpy中最核心的数据结构,它支持存储同类型元素的多维数组。每个元素在内存中占据相同大小的区域,并通过dtype对象存储数据类型信息。与Python列表类似,ndarray支持通过索引或切片操作。

    创建数组

    最常用的方法是使用numpy.array()函数,它可以接受任何序列型对象并生成对应的numpy数组。支持嵌套序列创建多维数组。

    import numpy as npa = [1, 2, 3, 4]b = np.array(a)# b的结果:array([1, 2, 3, 4])c = np.array([[1, 2], [3, 4]])# c的结果:[[1 2] [3 4]]

    除了array()函数,还可以通过zeros()ones()empty()等函数创建特定形状或全零/全一的数组:

    np.zeros(3)  # 全零一维数组:array([0., 0., 0.])np.ones(3)   # 全一一维数组:array([1., 1., 1.])np.zeros((3, 3))  # 全零二维数组:array([[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]])np.identity(3)   # 单位矩阵:array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]])

    随机数组创建

    通过random子模块可以创建随机数组:

    np.random.rand(5, 5)  # 0-1之间的随机数,5x5数组np.random.uniform(0, 100)  # 0-100之间的随机数np.random.randint(0, 50)  # 0-49之间的随机整数

    数组属性

    通过ndarray的属性可以获取数组信息:

    • size:数组元素个数
    • shape:数组形状
    • ndim:数组维度
    • dtype:数组元素类型
    • itemsize:元素字节大小
    import numpy as npx = np.array([(1, 2, 3), (4, 5, 6)])print(x.shape)  # (2, 3)print(x.reshape(3, 2))

    数组与标量运算

    数组运算的关键在于矢量化,通过批量运算避免循环:

    arr = np.array([[1., 2., 3.], [4., 5., 6.]])arr / arr  # 结果:[[1. 0. 0.], [0. 1. 0.]]arr * arr  # 结果:[[1., 4., 9.], [16., 25., 36.]]

    基本索引和切片

    支持一维、二维及多维数组的切片操作:

    arr = np.arange(10)arr[5:8] = 12arr  # [ 0, 1, 2, 3, 4, 12, 12, 12, 8, 9]

    数学和统计方法

    提供丰富的数学函数和统计方法:

    • summeanstdmaxmin等统计方法
    • cumsumcumprod进行累加和累积操作
    arr = np.random.randn(5, 4)  # 5x4正态分布数组print(arr.mean())  # 平均值print(np.mean(arr))  # 平均值print(arr.sum())  # 所有元素的和print(arr.cumsum(0))  # 按行累加

    通过以上内容可以看出,numpy库为Python提供了强大的数值计算和数据处理能力,是科学计算和数据分析的核心工具。

    转载地址:http://tolg.baihongyu.com/

    你可能感兴趣的文章
    【Python】面向对象2:之抽象基类:import abc,metaclass=abc.ABCMeta
    查看>>
    【Python】面向对象,封装
    查看>>
    接口又是个啥?
    查看>>
    uni-app请求头中携带token
    查看>>
    常用的 Git 命令和小技巧(1)
    查看>>
    vue中接收后台的图片验证码并显示
    查看>>
    springboot入门(1)---整合MyBatis
    查看>>
    Vue入门学习笔记(1)
    查看>>
    趣谈win10常用快捷键
    查看>>
    数学建模(NO.18灰色预测)
    查看>>
    数学建模更新12(数学线性规划模型1)
    查看>>
    Android,SharedPreferences的使用
    查看>>
    JPEG压缩技术
    查看>>
    Leetcode No.104 Maximum Depth of Binary Tree 遍历二叉树的深度
    查看>>
    两款用于检测内存泄漏的软件
    查看>>
    王爽 《汇编语言》 读书笔记 三 寄存器(内存访问)
    查看>>
    IDEA出现问题:Received fatal alert: protocol_version 解决方案
    查看>>
    访问docker中的nginx容器部署
    查看>>
    Airtest自动化测试 Docs airtest.core.android package
    查看>>
    SVN Unable to connect to a repository at URL 的解决方案
    查看>>