欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python机器学习之NumPy的使用

程序员文章站 2023-12-27 18:12:51
...

NumPy是Python进行科学计算和数据分析的基本程序库,NumPy主要提供以下功能:

  1. 创建强大的N维数组对象
  2. 进行各种复杂的数值计算
  3. 实现线性代数、傅里叶变换和随机数的运算

安装NumPy的最好的方式是:pip install numpy 或者 pip install -U numpy #安装最新版本

NumPy的主要对象是多维数组ndarray,ndarray指的是N维数组:一种由相同类型的元素组成的多维数组,元素数量是事先指定好的。元素的数据类型由dtype(data-type object)对象来指定,每个ndarray只有一种dtype类型。它的大小是固定的,创建好数组时一旦指定好大小,就不会再发生改变。

创建NumPy的数组对象可以使用numpy.ndarray(),也可以使用numpy.array()、zeros(),后一种方式更为常用
数组的创建流程:

import numpy  as np

# 1.使用ndarray创建,以零zero填充的对象
x = np.ndarray((3,5))	#表示一个二维数组,相当于三行五列

# 2.使用array()创建
x2 = np.array([1,2,3,4,5,6]) # 参数列表是list
x3 = np.array((1,2,3,4,5,6)) # 参数为元组tuple

# 3.使用zeros()创建
x4 = np.zeros((3,4)) # 所有元素初始化为0

# 4.使用ones()创建
x5 = np.ones((2,3)) # 所有元素初始化为1

# 5.使用empty创建
x6 = np.empty((2,3))	

注意:NumPy数组在创建后大小已经固定,如果改变NumPy数组对象的大小,则系统将创建一个新数组并删除原来的数组

数组元素的访问:

  • 一、基本元素的访问:

NumPy数组的元素是通过索引下标来进行访问的(索引下标是从0开始的)例子如下:

import numpy as np
arr1 = np.array([1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16])
x = arr1[2,2]	# 对应 行  列
print(x)  # 输出的是11

y = arr1[2]
print(y)	# 输出的是一个数组[9,10,11,12]

建议使用arr1[x,y] 这种方式进行获取对应位置上面的元素

  • 二、算数运算符的操作

可以将大多数的数学元素安抚应用于NumPy数组元素的计算(+=,-=,*=,%= 这些用来修改现有的数据而不是创建新数组)
在NumPy当中要实现类似于矩阵的乘积运算,可以是哦用@ 运算符来进行操作。

import numpy as np

# 这些操作符直接作用于数组的基本元素上面
a = np.array([10,20,30,40])
b = np.arange(4)	# 创建一个0,1,2,3 的数组ndarry

x1 = a - b
print(x1)	# 输出是:[9,19,29,39]

x2 = a * b
print(x2)	# 输出是:[0,20,60,120]

x3 = b**3	# a的三次幂
print(x3)	# 输出是:[0,1,8,27]

# 下面这些操作符将会直接改变数组
a += 3
b *= 3
  • 三、索引、切片、迭代访问元素

Numpy中数组的切片:在各个维度上单独切片,如果某维度都保留,则直接使用:冒号,不指定起始值和终止值

import numpy as np
arr = np.arange(10)

# 访问单一元素:
x1 = arr[2]
print(x1)

# 访问一个范围的元素
x2 = arr[2:5]	# 左闭右开
print(x2)	# 输出的是[2,3,4]

# 访问特定元素的值
x3 = arr[1:8:3]	# 从索引一到索引八,每次经过三个步长,最后一个是步长,如果步长为-1标识逆序输出
print(x3)

# 迭代访问数组元素
for i in arr
	print(i)

NumPy统一操作函数列表

arange(start,stop,step)						# 在给定区间内均匀间隔的数组,左闭右开,step为步长值
array(object)								# 按照序列对象object创建数组,object可以使list,tuple,另一个NumPy数组
copy(a,order ='K')							# 返回数组a的一个副本
fromfile(file,dtype=float,count=-1,sep='')  # 从一个数据文件中创建数组
linspace(start,stop,num=50,endpoint=true)	# 指定开始结束值创建爱你一维数组,endpoint关键字指定是否包括终值,缺省设置是包括终值
logspace()									# 和linspace类似,不过它创建等比数列
np.logspace(0, 2, 5)						# 0表示10的零次方,2表示10的二次方,5表示生成的数组元素总数

以上是NumPy库的基本使用,详细的使用还需要去官网查看对应的函数信息。

上一篇:

下一篇: