NumPy是一个用于科学计算的Python库,它提供了高性能的多维数组对象和用于处理这些数组的各种工具。NumPy的名称来自于“Numerical Python
”的缩写。
NumPy的主要功能包括:
多维数组对象:NumPy提供了多维数组对象,称为ndarray
,它是一个由同类型数据组成的表格。ndarray
可以包含整数、浮点数等多种数据类型,并支持基本的数学运算和数组操作。
数组操作:NumPy提供了很多数组操作函数,包括数组索引、切片、拼接、分割等,可以方便地对数组进行操作和处理。
线性代数:NumPy提供了线性代数相关的函数,如矩阵乘法、矩阵分解、求解线性方程组等。
随机数生成:NumPy提供了各种随机数生成函数,如正态分布、均匀分布等,可以方便地生成随机数序列。
傅里叶变换:NumPy提供了傅里叶变换相关的函数,可以方便地进行信号处理和图像处理等任务。
由于NumPy提供了高性能的数组操作和数学函数,因此被广泛应用于科学计算、数据分析、机器学习等领域。
在使用numpy之前务必确保已经下载安装了numpy库,如果未安装,请在控制台输入如下命令。
pip install numpy
下面介绍NumPy创建数组的几个函数,可以根据需要选择合适的函数创建数组。
import numpy as np
arr = np.array([1, 2, 3])
print(arr) # 输出 [1 2 3]
import numpy as np
arr = np.zeros((3, 4))
print(arr) # 输出 [[0. 0. 0. 0.]
# [0. 0. 0. 0.]
# [0. 0. 0. 0.]]
import numpy as np
arr = np.ones((2, 3))
print(arr) # 输出 [[1. 1. 1.]
# [1. 1. 1.]]
import numpy as np
arr = np.empty((2, 3))
print(arr) # 输出 [[4.67296746e-307 6.90583476e-310 1.69759663e-307]
# [1.69109977e-306 7.56595733e-307 1.37961302e-306]]
import numpy as np
arr = np.arange(10)
print(arr) # 输出 [0 1 2 3 4 5 6 7 8 9]
import numpy as np
arr = np.linspace(0, 1, 5)
print(arr) # 输出 [0. 0.25 0.5 0.75 1. ]
以下是NumPy数组的几个常用属性,可以使用这些属性来获取数组的形状、维度、元素个数和数据类型等信息。
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape) # 输出 (2, 3)
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.ndim) # 输出 2
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.size) # 输出 6
import numpy as np
arr = np.array([1, 2, 3], dtype=float)
print(arr.dtype) # 输出 float64
import numpy as np
arr = np.array([1, 2, 3], dtype=float)
print(arr.itemsize) # 输出 8
import numpy as np
arr = np.array([1, 2, 3], dtype=float)
print(arr.nbytes) # 输出 24
import numpy as np
arr = np.array([1, 2, 3])
arr = arr + 1
print(arr) # 输出 [2 3 4]
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr3 = arr1 + arr2
print(arr3) # 输出 [5 7 9]
import numpy as np
arr = np.array([1, 2, 3])
arr2 = arr > 2
print(arr2) # 输出 [False False True]
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([[4], [5], [6]])
arr3 = arr1 * arr2
print(arr3) # 输出 [[ 4 8 12]
# [ 5 10 15]
# [ 6 12 18]]
import numpy as np
arr = np.array([1, 2, 3])
sum = arr.sum()
mean = arr.mean()
std = arr.std()
print(sum, mean, std) # 输出 6 2.0 0.816496580927726
以下是NumPy数组的一些常见索引和切片操作,可以根据需要选择合适的方式来访问数组中的元素。
import numpy as np
arr = np.array([1, 2, 3])
print(arr[0]) # 输出 1
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr[0, 1]) # 输出 2
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr[1:4]) # 输出 [2 3 4]
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr[:2, 1:]) # 输出 [[2 3]
# [5 6]]
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
idx = np.array([1, 3])
print(arr[idx]) # 输出 [2 4]
NumPy提供了reshape()
函数来改变数组的形状,常用于将数组从一种形状转换为另一种形状。
下面我们一起看看如何使用。
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
new_arr = arr.reshape(2, 3)
print(new_arr)
# 输出
# [[1 2 3]
# [4 5 6]]
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
new_arr = arr.reshape(-1)
print(new_arr)
# 输出 [1 2 3 4 5 6]
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
new_arr = arr.ravel()
print(new_arr)
# 输出 [1 2 3 4 5 6]
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
new_arr = arr.reshape(3, -1)
print(new_arr)
# 输出
# [[1 2]
# [3 4]
# [5 6]]
以上是python中numpy库的一个基础使用,下一篇会介绍numpy的其他使用方法。如果你对numpy感兴趣,不妨点个赞和收藏支持一下。
同时欢迎大家订阅专栏python-数据分析,其中有numpy库的具体使用方法。