博客
关于我
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/

    你可能感兴趣的文章
    SVN Unable to connect to a repository at URL 的解决方案
    查看>>
    Android基本知识
    查看>>
    命令模式【Command Pattern】
    查看>>
    OSI 7 层网络模型
    查看>>
    JDK 内置的多线程协作工具类的使用场景
    查看>>
    Java 中哪些对象可以获取类对象
    查看>>
    linux 的 cp 命令如何复制不提示覆盖
    查看>>
    linux 的 sleep 命令
    查看>>
    js 的 let var const 区别
    查看>>
    vue计算属性和监听器区别
    查看>>
    11.2.6 时间值的小数秒
    查看>>
    11.2.7 日期和时间类型之间的转换
    查看>>
    redis 内存溢出_从数据存储的角度告诉你Redis为什么这么快!
    查看>>
    实例分析Facebook激励视频广告接入
    查看>>
    实例:使用OKGO下载网络压缩包资源,然后解压缩放在本地使用
    查看>>
    解决mybatis嵌套查询使用PageHelper分页不准确
    查看>>
    Redis源码分析(七)--- zipmap压缩图
    查看>>
    大规模集群自动化部署工具--Chef的安装部署
    查看>>
    自定义Hive Sql Job分析工具
    查看>>
    【MySQL】(九)触发器
    查看>>