1.1 NumPy介绍

本文将帮助您熟悉Python中广泛使用的数组处理库NumPy。在学习之前您应该熟悉大学所学的线性代数中的矩阵,熟悉其线性运算,包含:单位矩阵、点乘、转置等。

本章内容主要包含:

一、NumPy介绍

1. 什么是NumPy

NumPy是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy是一个通用的阵列处理包。它提供了一个高性能的多维数组对象,以及用于处理这些数组的工具。

它是使用Python进行科学计算的基础包。它包含各种功能,包括以下重要功能:

除了明显的科学用途外,NumPy还可以用作通用数据的高效多维容器。可以使用Numpy定义任意数据类型,允许NumPy无缝且快速地与各种数据库集成。

2. 安装NumPy

二、NumPy数组与它的属性

NumPy中主要对象是多维数组。

示例:

[[ 1, 2, 3],[ 4, 2, 5]]

下面演示一下NumPy中数组的最基本的属性。

import numpy as np # 创建一个数组 arr = np.array([[1, 2, 3], [4, 2, 5]]) # 输出数组的类型 print("数组的类型: ", type(arr)) # 轴的数量或维度的数量 print("维度的数量: ", arr.ndim) # 数组的维度,对于矩阵,n行m列 print("数组的维度: ", arr.shape) # 数组元素的总个数 print("数组元素的总个数: ", arr.size) # ndarray对象的元素类型 print("ndarray对象的元素类型: ", arr.dtype)

输出:

数组的类型:  <class 'numpy.ndarray'>
维度的数量:  2
数组的维度:  (2, 3)
数组元素的总个数:  6
ndarray对象的元素类型:  int64

三、多种方式创建数组

有多种方法可以在NumPy中创建数组。

**注意:**创建数组时可以显式定义数组类型。

import numpy as np # 使用float类型的数组数据创建数组 a = np.array([[1, 2, 4], [5, 8, 7]], dtype='float') print("使用float类型的数组数据创建数组:\n", a) # 元组数据类型创建数组 b = np.array((1, 3, 2)) print("\n元组数据类型创建数组:\n", b) # 3X4的全零创建数组 c = np.zeros((3, 4)) print("\n3X4的全零创建数组:\n", c) # 复数创建数组 d = np.full((3, 3), 6, dtype='complex') print("\n复数创建数组:\n", d) # 随机数创建数组 e = np.random.random((2, 2)) print("\n随机数创建数组:\n", e) # 以0~30步长为5的整数创建数组 f = np.arange(0, 30, 5) print("\n以0~30步长为5的整数创建数组:\n", f) # 0~5之间的等差的10个值创建数组 g = np.linspace(0, 5, 10) print("\n0~5之间的等差的10个值创建数组:\n", g) # 将3X4的数组转化为2X2X3的数组 arr = np.array([[1, 2, 3, 4], [5, 2, 4, 2], [1, 2, 0, 1]]) newarr = arr.reshape(2, 2, 3) print("\n将3X4的数组转化为2X2X3的数组:\n", arr) print("转化后:\n", newarr) # 将数组转化为一维的数组 arr = np.array([[1, 2, 3], [4, 5, 6]]) flarr = arr.flatten() print("\n将数组转化为一维的数组:\n", arr) print("转化后:\n", flarr)

输出:

使用float类型的数组数据创建数组:
 [[1. 2. 4.]
 [5. 8. 7.]]

元组数据类型创建数组:
 [1 3 2]

3X4的全零创建数组:
 [[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]

复数创建数组:
 [[6.+0.j 6.+0.j 6.+0.j]
 [6.+0.j 6.+0.j 6.+0.j]
 [6.+0.j 6.+0.j 6.+0.j]]

随机数创建数组:
 [[0.66694019 0.6944897 ]
 [0.11728555 0.21673665]]

以0~30步长为5的整数创建数组:
 [ 0  5 10 15 20 25]

0~5之间的等差的10个值创建数组:
 [0.         0.55555556 1.11111111 1.66666667 2.22222222 2.77777778
 3.33333333 3.88888889 4.44444444 5.        ]

将3X4的数组转化为2X2X3的数组:
 [[1 2 3 4]
 [5 2 4 2]
 [1 2 0 1]]
转化后:
 [[[1 2 3]
  [4 5 2]]

 [[4 2 1]
  [2 0 1]]]

将数组转化为一维的数组:
 [[1 2 3]
 [4 5 6]]
转化后:
 [1 2 3 4 5 6]

四、总结

本章是对NumPy进行一个入门学习,主要掌握了通过NumPy创建数组的多种方式,以及它的常用属性。对于NumPy库其它常见的语法请继续学习下一章的内容。

若有问题,欢迎联系作者(微信:lixu1770105)。