欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

机器学习番外篇:NumPy的基本知识

时间:2023-08-19
NumPy

一、创建数组二、数组的索引与切片三、数组的基本运算四、数组维度变换五、数组合并与切分 一、创建数组

导入 numpy 模块

import numpy as np

创建数组:array

a = np.array([1,2,3])b = np.array([1.2,2.3,3.4])c = np.array([[1,2,3],[4,5,6]])#用中括号括住

查看数据类型:dtype

a.dtypeb.dtype

全0数组:zeros

np.zeros((2,3))#全用圆括号

全1数组:ones

np.ones((3,4),dtype=np.int16)#全用圆括号,可以加dtypy来规定其类型

随机数组:empty

np.empty([2,3])#里面用中括号

创建有范围的数组:arange

np.arange(10,30,5)#从10到30,30取不到,5个数字一步

(0,1)内均匀分布的随机数组:random.rand

np.random.rand(3,2)

(0,2)内有5个数是数组:random.randint

np.random.randint(3,size=5)

符合状态分布的随机数组:random.randn

np.random.randn(3)

二、数组的索引与切片

一维数组

a = np.arange(0,10,1)

取一维数组的第3位数:数组名+中括号

a[2]#从0开始数数

取一维数组的第2个到第4个数组:数组名+中括号+中括号里用冒号隔开

a[1:4]

将一维数组从后往前数:-1

a[::-1]


二维数组

b = np.array([[1,2,3],[4,5,6],[7,8,9]])

取二维数组第2行第3列的数组元素:数组名+中括号

b[1,2]#从0开始数数

取二维数组的第2列数据

b[:,1]#中括号里第1个数是行坐标,第2个数是列坐标,全取用":"

取二维数组的第3列的前两行数据

b[:2,2]

三、数组的基本运算

创建两个不同的数组

a = np.array([5,6,7,8])b = np.array([1,2,3,4])

减法:-

a - b

平方:**+数字

b**2

正弦值:sin()

np.sin(a)

逻辑运算

b < 3

均值:mean

np.mean(b)

方差:var

np.var(b)


线性代数运算

创建两个数组

A = np.array([[1,1],[0,1]])B = np.array([[2,0],[3,4]])

对应元素相乘:*

A * B

矩阵相乘:.dot()

A.dot(B)

矩阵求逆:linalg.inv()

np.linalg.inv(A)

行列式:linalg.det()

np.linalg.det(A)

四、数组维度变换

创建一个3乘4的数组

a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])

查看数组的维度:shape

a.shape

把数组转换为一维数组:ravel

a.ravel()

把数组转换为 2*6 的数组:reshape()

a.reshape(2,6)

数组的转置:T

a.T

-1维度表示 NumPy会自动计算该维度

a.reshape(3,-1)#3行,自动算有几列

五、数组合并与切分

创建两个数组

A = np.array([[1,1],[0,1]])B = np.array([[2,0],[3,4]])

合并数组:hstack(())

np.hstack((A,B))

按列合并:vstack(())

np.vstack((A,B))


创建数组

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

切分为两个数组:hsplit()

np.hsplit(C,2)

切分为两个数组:vsplit()

np.vsplit(C,2)

熟能生巧!!!

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。