python机器学习-Python 库:Numpy
本文是Python 机器学习系列的一部分。您可以在此处找到本系列之前所有帖子的链接
介绍
到目前为止,您已使用 Anaconda 配置了 ML 环境。
在不同的 Python 库的帮助下,Python 提供了各种功能来支持实现机器学习。从本章开始,我们将开始一一探索和研究它们。
我们将从 NumPy 或 Numerical Python 开始。
什么是 Python NumPy?
Numeric 是 NumPy 的祖先,由 Jim Hugunin 开发。还开发了另一个包 Numarray,具有一些附加功能。2005 年,Travis Oliphant 通过将 Numarray 的功能合并到 Numeric 包中,创建了 NumPy 包。这个开源项目有很多贡献者。
NumPy 或 Numerical Python 是一个 Python 库,它提供以下功能
- 一个强大的 N 维数组对象
- 复杂的(广播)功能
- 用于集成 C/C++ 和 Fortran 代码的工具
- 有用的线性代数、傅立叶变换和随机数功能。
它还可以提供通用数据的高效多维容器。可以定义任意数据类型。官方网站是www.numpy.org
在 Python 中安装 NumPy
1. Ubuntu/Linux
sudo apt update -y
sudo apt upgrade -y
sudo apt install python3-tk python3-pip -y
sudo pip install numpy -y
2. Anaconda
conda install -c anaconda numpy
NumPy 数组
它是一个强大的 N 维数组,采用行和列的形式。我们可以从嵌套的 Python 列表中初始化 NumPy 数组并访问其元素。
NumPy 数组与标准 Python 库类 array.array 不同,后者只处理一维数组。
- 一维 NumPy 数组
上面的代码结果 [1 2 3]
2.多维数组
NumPy 数组属性
- ndarray.ndim它返回数组的轴数(维度)。
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print(a.ndim)
上述代码的输出将为 2,因为 ‘a’ 是一个二维数组
2. ndarray.shape
它返回数组维度的元组,即 (n,m),其中 n 是行数,m 是列数
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print(a.shape)
上述代码的输出将是 (2,3),即 2 行 3 列
3. ndarray.size它返回数组的元素总数。
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print(a.size)
上述代码的输出将是 6 即 2 x 3
4. ndarray.dtype它返回一个描述数组中元素类型的对象。
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print(a.dtype)
上面代码的输出将是“int32”,即 32 位整数,我们可以明确定义 NumPy 数组的数据类型
import numpy as np
a = np.array([[1,2,3],[4,5,6]], dtype = float)
print(a.dtype)
上面的代码将返回“float64”即64位浮点数
5. ndarray.itemsize
它返回数组每个元素的大小(以字节为单位)。
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print(a.itemsize)
上述代码的输出将是 4 即 32/8
6. ndarray.data
它返回包含数组实际元素的缓冲区。这是通过索引访问元素的替代方法
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print(a.data)
上面的代码将返回元素列表
7. ndarray.sum()
该函数将返回 ndarray 的所有元素的总和
import numpy as np
a = np.random.random( (2,3) )
print(a)
print(a.sum())
为我生成的矩阵是 [[0.46541517 0.66668157 0.36277909][0.7115755 0.57306008 0.64267163]],
因此对我来说,上面的代码将返回 3.422183052180838。由于这里使用的是随机数,因此您可能不会得到相同的输出
8. ndarray.min()
该函数将从 ndarray 返回最小元素值
import numpy as np
a = np.random.random( (2,3) )
print(a.min())
为我生成的矩阵是 [[0.46541517 0.66668157 0.36277909][0.7115755 0.57306008 0.64267163]],
因此对我来说,上面的代码将返回 0.36277909。由于此处使用随机数,因此您可能无法获得相同的输出
9. ndarray.max()
该函数将从 ndarray 返回最大元素值
import numpy as np
a = np.random.random( (2,3) )
print(a.max())
为我生成的矩阵是 [[0.46541517 0.66668157 0.36277909]
因此对我来说,上面的代码将返回 0.7115755。由于此处使用随机数,因此您可能无法获得相同的输出
NumPy 函数
1. numpy.type()
它是一个python函数,用于返回传递的参数的类型。在 numpy 数组的情况下,它将返回 numpy.ndarray
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print(type(a))
2. numpy.zeros()
numpy.zeros((rows,columns), dtype)
上面的函数将创建一个给定维度的 numpy 数组,每个元素都为零。如果未定义 dtype,则采用默认 dtype
import numpy as np
np.zeros((3,3))
print(a)
3. numpy.ones()
numpy.ones((rows,columns), dtype)
上面的函数将创建一个给定维度的 numpy 数组。如果没有定义 dtype,每个元素都是一个,则采用默认 dtype。
import numpy as np
np.ones((3,3))
print(a)
4. numpy.empty()
numpy.empty((rows,columns))
上面的函数创建了一个数组,它的初始内容是随机的,并且取决于内存的状态。
import numpy as np
np.empty((3,3))
print(a)
上面的代码将产生一个 3×3 numpy 数组,每个元素都是随机的。
5. numpy.arange()
numpy.arange(start, stop, step)
上述函数用于以与在之间的范围内元件numpy的阵列开始 和停止值与差值步骤值。
import numpy as np
a=np.arange(5,25,4)
print(a)
上述代码的输出将是 [ 5 9 13 17 21 ]
6. numpy.linspace()
句法
上述函数用于以与在之间的范围内元件numpy的阵列开始和停止值和 num_of_elements 作为numpy的阵列的大小。numpy 数组的默认数据类型是 float64
import numpy as np
a=np.linspace(5,25,5)
print(a)
上述代码的输出将是 [ 5 10 15 20 25 ]
7. numpy.logspace()
句法
上述函数用于以与在之间的范围内元件numpy的阵列开始和停止值和num_of_elements作为numpy的阵列的大小。numpy 数组的默认数据类型是 float64。所有元素都将跨越对数刻度,即结果元素是相应元素的对数。
import numpy as np
a=np.logspace(5,25,5)
print(a)
上述代码的输出将是 [1.e+05 1.e+10 1.e+15 1.e+20 1.e+25]
8. numpy.sin()
句法
上面的代码将返回给定参数的 sin。
import numpy as np
a=np.logspace(5,25,2)
print(np.sin(a))
上述代码的输出将是 [0.0357488 -0.3052578]
同样,也有cos()
,tan()
等等。
9. numpy.reshape()
句法
上述函数用于更改 numpy 数组的维度。重塑中的参数数量决定了 numpy 数组的维度。
import numpy as np
a=np.arange(9).reshape(3,3)
print(a)
上述代码的输出将是一个 3×3 维度的二维数组
10. numpy.random.random()
句法
numpy.random.random((行,列))
上面的函数用于返回一个具有给定维度的 numpy ndarray,并且 ndarray 的每个元素都是随机生成的。
a = np.random.random((2,2))
上面的代码将返回一个 2×2 ndarray
11. numpy.exp()
句法numpy.exp(numpy.ndarray)
上面的函数返回一个每个元素的指数的ndarray
b = np.exp([ 10] )
上面的代码返回值 22026.4657948
12. numpy.sqrt()
句法
numpy.sqrt(numpy.ndarray)
上面的函数返回一个包含每个元素的 ex 的 ndarray
b = np.sqrt([16])
上面的代码返回值 4
NumPy 基本操作
a = np.array( [ 5 , 10 , 15 , 20 , 25 ] )
b = np.array( [ 0, 1, 2, 3 ] )
1. 下面的代码将返回两个数组之间的差异
c = a - b
2. 下面的代码将返回包含每个元素的平方的数组
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!