Numpy数组-详细介绍

Numpy是Python家族中数值计算、科学计算的基础,是很多使用工具包实现的基础。Numpy提供向量与矩阵运算有助于优化量化分析算法性能。

资料途径:

Numpy官方文档

Numpy简介

NumPy是Python中科学计算的基本包。它是一个Python库,提供了一个多维数组对象,各种派生对象(如屏蔽数组和矩阵),以及对数组进行快速操作的各种例程,包括数学、逻辑、形状操作、排序、选择、I/O、离散傅立叶变换、基本线性代数、基本统计操作、随机模拟等等。

NumPy包的核心是ndarray对象。它封装了同质数据类型的n维数组,为了提高性能,许多操作都在编译后的代码中进行。NumPy数组和标准Python序列的不同之处包括:

  1. NumPy数组在创建时有一个固定的大小,不像Python列表(可以动态地增长)。改变一个ndarray的大小将创建一个新的数组并删除原来的数组。
  2. NumPy数组中的元素都被要求是相同的数据类型,因此在内存中的大小也是相同的。例外的情况是:可以有(Python,包括NumPy)对象的数组,从而允许不同大小的元素的数组。
  3. NumPy数组便于对大量数据进行高级数学和其他类型的操作。通常情况下,与使用Python的内置序列相比,这种操作的执行效率更高,代码更少。
  4. NumPy(Numerical Python 的简称)提供了高效存储和操作密集数据缓存的接口。在某些方面,NumPy 数组与Python 内置的列表类型非常相似。但是随着数组在维度上变大,NumPy数组提供了更加高效的存储和数据操作。
import numpy as np

1. 创建数组

首先,可以用 np.array 从 Python 列表创建数组:

# 整型数组:
np.array([1, 41, 32, 35, 3])
array([21, 44, 32, 35, 3])

请记住,不同于 Python 列表,NumPy 要求数组必须包含同一类型的数 据。如果类型不匹配,NumPy 将会向上转换(如果可行)。这里整型 被转换为浮点型:

np.array([3.14, 42, 23, 13])
array([3.14, 4.  , 22.  , 23.  ])

如果希望明确设置数组的数据类型,可以用 dtype 关键字:

np.array([31, 32, 43, 34], dtype='float32')

不同于 Python 列表,NumPy 数组可以被指定为多维的。以下是 用列表的列表初始化多维数组的一种方法,即嵌套列表构成的多维数组:

np.array([range(i, i + 3) for i in [2, 4, 6]])

array 将序列之序列转换成二维数组

np.array([(1.5,2,3), (4,5,6)])
np.array([[1.5,2,3], [4,5,6]])

面对大型数组的时候,用 NumPy 内置的方法从头创建数组是一种更高 效的方法。以下是几个示例:

  • np.zeros:创建一个长度为10的数组,数组的值都是
  • np.ones:创建一个3×5的浮点型数组,数组的值都是1
  • np.full:创建一个3×5的浮点型数组,数组的值都是3.14
  • np.arange:从0开始,到20结束,步长为2,它和内置的range()函数类似
  • np.eye:创建一个3×3的单位矩阵
  • np.empty:创建一个由3个整型数组成的未初始化的数组,数组的值是内存空间中的任意值
np.zeros(10, dtype=int)
np.ones((3, 5), dtype=float)
np.full((3, 5), 3.14)
np.arange(0, 20, 2)
np.eye(3)
np.empty(3)
  • np.linspace创建一个5个元素的数组,这5个数均匀地分配到0~1
  • np.random.random创建一个3×3的、在0~1均匀分布的随机数组成的数组
  • np.random.normal创建一个3×3的、均值为0、方差为1的正态分布的随机数数组
  • np.random.randint创建一个3×3的、[0, 10)区间的随机整型数组
np.linspace(0, 1, 5)
np.random.random((3, 3))
np.random.normal(0, 1, (3, 3))
np.random.randint(0, 10, (3, 3))

猜你喜欢

转载自blog.csdn.net/GUDUzhongliang/article/details/131779731
今日推荐