数据分析-机器学习-第三方库使用基础

Numpy

numpy(Numerical Python) 是科学计算基础库,提供大量科学计算相关功能,比如数据统计,随机数生成等。其提供最核心类型为多维数组类型(ndarray),支持大量的维度数组与矩阵运算, numpy支持向量处理ndarray对象,提高程序运算速度。numpy、pandas和matplotlib是数据分析、机器学习领域十分常用的第三方库。

在Python中,一切皆对象,这意味着甚至是简单的整数(Int)都是对象,对象就需要计算机使得它工作,我们称之为"Boxed Ints"。相反,Numpy使用原始数值类型(floats, ints)使得存储和计算更有效率。Numpy(Numerical Python)是一个在Python领域做数值计算非常重要的库,Pandas、Matplotlib、Statmodels、Scikit-learn和其它一些科学计算库都依赖Numpy。

numpy的安装方式:

1.pip安装 使用清华源下载速度会更快pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

如需要指定numpy版本 pip install numpy==x.x.x -i https://pypi.tuna.tsinghua.edu.cn/simple

想安装 numpy 版本 1.21.0,可以使用以下命令:

pip install numpy==1.21.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

2.anaconda安装 conda命令行:conda install numpy

测试安装是否成功

import numpy as np #同时导入numpy

或者

在jupyter notebook环境下学习numpy

导入numpy

import numpy as np

1.array创建数组

numpy模块的array函数即array(),可以生成多维数组。例如,如果要生成一个二维数组,需要向array函数传递一个列表类型的参数。每一个列表元素是一维的ndarray类型数组,作为二维数组的行。另外,通过ndarray类的shape属性可以获得数组每一维的元素个数(元组形式),也可以通过shapen形式获得每一维的元素个数,其中n是维度,从0开始。

基础数组array

a=np.array(1, 2, 3, 4)

b=np.array(0, .5, 1, 1.5, 2)

print(a0,a1)

切片

print(a0:)

print(a1:3)

print(a1:-1)

print(a::2)

print(b)

print(b0,b2,b-1) # return tuple

test_tp = (b0,b2,b-1)

print(type(test_tp))

print(b\[0, 2, -1]) # return ndarray

二维数组

c = np.array([

1,2,3,

4,5,6,

7,8,9

])

print(c)

print('c数组的维度:',c.shape)

ndmin参数的使用:如果没有指定ndmin(默认为0),则生成的数组的维度根据传进来的第一个参数来决定。如果指定了ndmin,则指定生成数组的最小维度

d = np.array(1,2,3,4,5,6,ndmin=3)

print(d)

print(d.shape)

dtype指定了数组元素的数据类型

e = np.array(1,2,3,4,5,6,dtype=np.float64) #np.float32 np.float.64

print(e)

2.arange创建数组

a1 = np.arange(0,8,dtype=int) # 左闭右开

a1

arange创建二维数组,通过array函数与arange函数配合使用创建二维数组

b1 = np.array([

np.arange(1,5),

np.arange(5,9),

np.arange(9,13),

])

print(b1)

print(b1.shape)

如果列的规模不全相同,会报错

3.随机数创建

numpy中的random模块包含了很多函数可以用来产生随机数。

4.ndarray对象

1.可以使用NumPy的random模块中的函数创建随机数数组,而且使用NumPy创建的数组都是ndarray对象。

2.ndarray是由多个同类型的数据组成的多维数组,每个元素在内存中占据相同大小的空间。它由以下几个主要部分组成:一个指向实际数据的指针、描述数据类型的dtype、表示数组形状的shape元组以及跨度(stride)信息。

3.创建ndarray对象,最常见的是使用numpy.array()函数。

4.ndarray中的每个元素都必须具有相同的数据类型,这是为了优化内存使用和提高运算效率。

numpy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以下标0为开始,进行集合中元素的索引。

先随机创建三个数组

f1 = np.random.randint(10,size=6)

f2 = np.random.randint(10,size=(3,4))

f3 = np.random.randn(3,4,5)

print("ndim:",f1.ndim,f2.ndim,f3.ndim,sep='-----') # 数组的维度数量

print("shape:",f1.shape,f2.shape,f3.shape,sep='-----') #数组的形状

print("dtype:",f1.dtype,f2.dtype,f3.dtype,sep='-----') #数组中每个元素的数据类型

print("size:",f1.size,f2.size,f3.size,sep='-----') # 数组中包含元素的个数

print("itemsize:",f1.itemsize,f2.itemsize,f3.itemsize,sep='-----') # 数组中每个元素的大小,以字节为单位

5.zeros函数创建数组

np.zeros(shape, dtype = float, order = 'C')

1.shape: 这是一个整数或整数元组,定义了返回数组的形状。例如,(2, 3) 会生成一个 2x3 的二维数组。如果传入的是单个整数,则生成一维数组。

2.dtype: 可选参数,表示数组中元素的数据类型。默认值是 float,即浮点数。你可以根据需要指定其他数据类型,如 int, complex, bool 等。

3.order: 可选参数,表示多维数组在内存中的存储顺序。默认值是 'C'(行优先,C-style)。另一个选项是 'F'(列优先,Fortran-style),这在某些情况下可以提高性能。

创建一个包含6个元素的全0的一维数组

g1 = np.zeros(6)

g1

创建一个3行4列的全0数组,设置元素类型为整数

g2 = np.zeros(3,4,dtype=int)

print(type(g20,0))

g2

形状为2x2的全0数组

g3 = np.zeros(2,2)

g3

6.ones函数创建数组

numpy.ones(shape, dtype = None, order = 'C')

参数含义同zeros

h1 = np.ones(6)

h1

h2 = np.ones(6,6,dtype=np.float32)

print(type(h21,1))

h2

h3 = np.ones_like(h2)

仿照h2创建一个h3

h3

7.empty函数创建数组

numpy.empty(shape, dtype = float, order = 'C')

参数含义同zeros

i1 = np.empty(3,3,dtype=np.float64)

i1

创建一个指定形状和数据类型的数组,但不初始化数组中的元素。换句话说,np.empty 创建的数组包含的是未定义的垃圾值(即内存中的随机数据),而不是零或其他特定值。

i2 = np.empty(3,3,dtype=int)

i2

8.full()函数创建数组

full(shape,fill_value) 创建全为某个指定值的数组

j1 = np.full(3,3,2)

j1

仿照j1的形状,创建一个都是新指定数字的数组

j2 = np.full_like(j1,3)

j2

9.创建单位矩阵数组

单位矩阵从左上角到右下角的对角线上的元素均为1,除此以外全都 为0

。任何矩阵与单位矩阵相乘都等于本身且单位矩阵因此独 性在高等数学中也有广泛应。

eye(N, M=None, k=0, dtype=<class 'float'>, order='C')

N是行数,M是列数,其它参数含义也同zeros

k1 = np.eye(3,3,dtype=int)

k1

M不指定时默认创建一个方阵

k2 = np.eye(3)

k2

10.linspace创建数组

linspace函数用于创建一个一维数组,数组是一个等差数列构成的

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

l1 = np.linspace(1,20,5)

l1

endpoint=False时,生成的等差数列范围在1-19

l2 = np.linspace(1,20,5,endpoint=False)

l2

endpoint=False 间隔 end-start/num -- 20-1/(5)=3.8

l3 = np.linspace(1,20,5,endpoint=False,retstep=True)

l3

11.logspace创建数组

logspace 函数用于创建一个于等比数列。

base是指定指数,不指定时默认为10

其它参数含义和linspace一样

从2的0次开始,到2的9次结束的一个等比数列,其中数列的长度为10

n1 = np.logspace(0,9,10,base=2)

n1

n2 = np.logspace(0,3,num=4)

n2

相关推荐
garmin Chen14 小时前
从 Transformer 到 Agent:大模型技术全景解析
java·人工智能·python·深度学习·transformer
没有钱的钱仔14 小时前
pytorch_cuda安装
人工智能·pytorch·python
大模型最新论文速读14 小时前
06-11 · LLM 最新论文速览
论文阅读·人工智能·深度学习·机器学习·自然语言处理
Full Stack Developme15 小时前
Apache Tika 教程
java·开发语言·python·apache
笨笨没好名字15 小时前
Leetcode刷题python版第一周
python·算法·leetcode
Cthy_hy15 小时前
斯特林数:组合划分的递归经典,一二两类全解
python·算法·斯特林数
青春:一叶知秋15 小时前
【Python】python基本语法和使用
开发语言·python
码云骑士15 小时前
12-GIL不是性能杀手(下)-绕过GIL的三种方案与决策树
算法·决策树·机器学习
SilentSamsara15 小时前
向量数据库实战:Chroma/Milvus/Qdrant 选型与语义搜索应用
开发语言·数据库·人工智能·python·青少年编程·milvus
Hello数据集15 小时前
医疗AI实战:如何利用免疫与内分泌系统疾病数据集训练高精度预测模型?
人工智能·机器学习·数据挖掘·医疗ai