numpy介绍
NumPy是一个用于科学计算的Python库,它提供了高性能的多维数组对象和用于处理这些数组的各种工具。NumPy的名称来自于“Numerical Python
”的缩写。
NumPy的主要功能包括:
-
多维数组对象:NumPy提供了多维数组对象,称为
ndarray
,它是一个由同类型数据组成的表格。ndarray
可以包含整数、浮点数等多种数据类型,并支持基本的数学运算和数组操作。 -
数组操作:NumPy提供了很多数组操作函数,包括数组索引、切片、拼接、分割等,可以方便地对数组进行操作和处理。
-
线性代数:NumPy提供了线性代数相关的函数,如矩阵乘法、矩阵分解、求解线性方程组等。
-
随机数生成:NumPy提供了各种随机数生成函数,如正态分布、均匀分布等,可以方便地生成随机数序列。
-
傅里叶变换:NumPy提供了傅里叶变换相关的函数,可以方便地进行信号处理和图像处理等任务。
由于NumPy提供了高性能的数组操作和数学函数,因此被广泛应用于科学计算、数据分析、机器学习等领域。
在使用numpy之前务必确保已经下载安装了numpy库,如果未安装,请在控制台输入如下命令。
pip install numpy
numpy创建数组
下面介绍NumPy创建数组的几个函数,可以根据需要选择合适的函数创建数组。
- array():创建一个数组,可以接受一个序列或嵌套序列作为输入。
import numpy as np
arr = np.array([1, 2, 3])
print(arr) # 输出 [1 2 3]
- zeros():创建一个元素全为0的数组。
import numpy as np
arr = np.zeros((3, 4))
print(arr) # 输出 [[0. 0. 0. 0.]
# [0. 0. 0. 0.]
# [0. 0. 0. 0.]]
- ones():创建一个元素全为1的数组。
import numpy as np
arr = np.ones((2, 3))
print(arr) # 输出 [[1. 1. 1.]
# [1. 1. 1.]]
- empty():创建一个未初始化的数组,元素的值不确定。
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]]
- arange():创建一个一维数组,其中的元素是指定范围内的整数。
import numpy as np
arr = np.arange(10)
print(arr) # 输出 [0 1 2 3 4 5 6 7 8 9]
- linspace():创建一个一维数组,其中的元素是在指定范围内均匀分布的数值。
import numpy as np
arr = np.linspace(0, 1, 5)
print(arr) # 输出 [0. 0.25 0.5 0.75 1. ]
numpy创建数组的属性
以下是NumPy数组的几个常用属性,可以使用这些属性来获取数组的形状、维度、元素个数和数据类型等信息。
- shape:返回一个元组,表示数组的形状,即每个维度上的元素个数。
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape) # 输出 (2, 3)
- ndim:返回一个整数,表示数组的维度数。
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.ndim) # 输出 2
- size:返回一个整数,表示数组中的元素总数。
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.size) # 输出 6
- dtype:返回一个描述数组中元素类型的对象。
import numpy as np
arr = np.array([1, 2, 3], dtype=float)
print(arr.dtype) # 输出 float64
- itemsize:返回一个整数,表示数组中每个元素的字节大小。
import numpy as np
arr = np.array([1, 2, 3], dtype=float)
print(arr.itemsize) # 输出 8
- nbytes:返回一个整数,表示数组中所有元素所占用的字节数。
import numpy as np
arr = np.array([1, 2, 3], dtype=float)
print(arr.nbytes) # 输出 24
numpy数组运算
- 数组与标量的运算:可以对数组中的每个元素执行加、减、乘、除等运算。
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数组索引和切片
以下是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数组的形状变换
NumPy提供了reshape()
函数来改变数组的形状,常用于将数组从一种形状转换为另一种形状。
下面我们一起看看如何使用。
- 将一维数组转换为二维数组
可以使用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]]
- 将多维数组转换为一维数组
可以使用reshape()函数将多维数组转换为一维数组,其中可以只指定一维的大小,而将其余维度用-1表示,这样NumPy会自动计算出新数组的大小。
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]
- 将数组扁平化为一维数组
可以使用ravel()函数将多维数组扁平化为一维数组,这个函数会返回一个新的一维数组,不会修改原始数组。
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]
- 更改数组的维数
可以使用reshape()函数来更改数组的维数,其中可以指定-1来表示NumPy需要自动计算出新数组的大小。
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感兴趣,不妨点个赞和收藏支持一下。文章来源:https://www.toymoban.com/news/detail-462767.html
同时欢迎大家订阅专栏python-数据分析,其中有numpy库的具体使用方法。文章来源地址https://www.toymoban.com/news/detail-462767.html
到了这里,关于【Python数据分析】numpy库的使用-上篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!