美文网首页Python小小白Numpy
Python|Numpy数组基础知识

Python|Numpy数组基础知识

作者: 5a41eb2ceec6 | 来源:发表于2018-11-27 09:22 被阅读2次

关于Numpy基本的数组操作有:

  • 数组的属性
    数组的大小、形状、储存大小、数据类型
  • 数组的索引
    获取和设置数组各个元素的值
  • 数组的切分
    在大的数组中获取或设置更小的子数组
  • 数组的变形
    改变给定数组的形状
  • 数组的拼接和分裂
    将多个数组合并为一个,以及将一个数组分裂成多个
  1. 数组的属性
  • nidm(数组的维度)
  • shape(数组每个维度的大小)
  • size(数组的总大小)
  • dtype(数组的数据类型)
  • itemsize(每个数组元素字节大小)
  • nbytes(数组总字节大小)
属性

一般地可以认为 nbytes 与 itemsize 和 size 的乘积大小相等

  1. 数组索引
  • 可以通过中括号制定索引获取第i个值(从0开始计数)
  • 为了获取数组的末尾值,可以用负值索引
  • 在多维数组中,可以用逗号分隔的索引元组获取元素


    索引

特别注意:NumPy 数组是固定类型的,将一个浮点值插入一个整型数组时,浮点值会被截短成整型。并且这种截短是自动完成的,不会给任何提示或警告

注意
  1. 数组切片

切片符号用冒号(:)表示,其语法方式:
x[start:stop:step]
如果以上3个参数都未指定,则会被分别设置默认值start=0,stop=维度的大小,step=1

  • 3.1一维子数组
3.1

其中,步长设置为负值是一种非常方便的获取逆序数组的方式。

  • 3.2 多维子数组


    3.2
  • 3.3 获取数组的行和列
    平时一种常见的需求是获取数组的单行和单列,可以将索引与切片组合起来实现。

3.3
  • 3.4 非副本视图的子数组
    关于数组切片有一点很重要也非常有用,即数组切片返回的是数组数据的视图,而不是数值数据的副本。
3.4

这种处理方式很有用,这表明在处理非常大的数据集时,可以获取或处理这些数据集的片段,而不用复制底层的数据缓存。

  • 3.5 创建数组的副本
    数组视图有一些非常好的特性,但是在有些时候明确地复制数组里的数据或子数组也是非常有用的。此时用copy()方法就可以~


    3.5
  1. 数组的变形
    数组变形最灵活的实现方式是通过 reshape() 函数来实现。但要注意原始数组的大小必须和变形后数组的大小一致。此外还可以在一个切片操作中利用 newaxis 关键字来实现。
4
  1. 数组拼接和分裂
    数组的拼接主要由 np.concatenate、 np.vstack 和 np.hstack实现


    拼接1
拼接2

数组的分裂主要由 np.split、 np.hsplit 和 np.vsplit 函数来实现


分裂

需要注意的是,N 分裂点会得到 N + 1 个子数组

相关文章

网友评论

    本文标题:Python|Numpy数组基础知识

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