python机器学习-Python 库:Numpy

作者 : 慕源网 本文共4643个字,预计阅读时间需要12分钟 发布时间: 2021-10-18 共521人阅读

本文是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 不同,后者只处理一维数组。

  1. 一维 NumPy 数组
import numpy as np  
a = np.array([1,2,3])  
print(a)  

上面的代码结果 [1 2 3]

2.多维数组

import numpy as np  
a = np.array([[1,2,3],[4,5,6]])  
print(a)  

上面的代码结果 [[1 2 3] [4 5 6]]

NumPy 数组属性

  1. 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 0.57306008 0.64267163]],

因此对我来说,上面的代码将返回 0.7115755。由于此处使用随机数,因此您可能无法获得相同的输出

NumPy 函数

1. numpy.type()

语法
type(numpy.ndarray)

它是一个python函数,用于返回传递的参数的类型。在 numpy 数组的情况下,它将返回 numpy.ndarray

import numpy as np  
a = np.array([[1,2,3],[4,5,6]])  
print(type(a))  
上面的代码将返回 numpy.ndarray

2. numpy.zeros()

句法

numpy.zeros((rows,columns), dtype)

上面的函数将创建一个给定维度的 numpy 数组,每个元素都为零。如果未定义 dtype,则采用默认 dtype

import numpy as np  
np.zeros((3,3))  
print(a)  
上面的代码将产生一个 3×3 numpy 数组,每个元素都为零。

3. numpy.ones()

句法

numpy.ones((rows,columns), dtype)

上面的函数将创建一个给定维度的 numpy 数组。如果没有定义 dtype,每个元素都是一个,则采用默认 dtype。

import numpy as np    
np.ones((3,3))    
print(a) 
上面的代码将产生一个 3×3 numpy 数组,每个元素都是一个。

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.linspace(start, stop, num_of_elements)

上述函数用于以与在之间的范围内元件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.logspace(start, stop, num_of_elements)

上述函数用于以与在之间的范围内元件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()

句法

numpy.sin(numpy.ndarray)

上面的代码将返回给定参数的 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.resahpe(dimensions)

上述函数用于更改 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. 下面的代码将返回包含每个元素的平方的数组

b**2  

3. 下面的代码将根据给定的表达式返回值

10* np.sin(a)  

4.下面的代码将在满足给定条件的每个元素位置返回“true”

a<15  

NumPy 数组基本操作

a = np.array( [[1,1], [0,1]])  
b = np.array( [[2,0],[3,4]]) 

1. 下面的代码将返回两个数组的元素乘积

a * b  

2. 下面的代码将返回两个数组的矩阵乘积

a @ b  

或者

a.dot(b)  

结论

在本章中,我们学习了 Python NumPy。在下一章中,我们将学习 Python Pandas。

Python Pandas 是一个优秀的库,主要用于数据操作和分析。


慕源网 » python机器学习-Python 库:Numpy

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录