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

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属性可以获得数组每一维的元素个数(元组形式),也可以通过shape[n]形式获得每一维的元素个数,其中n是维度,从0开始。

基础数组array

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

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

print(a[0],a[1])

切片

print(a[0:])

print(a[1:3])

print(a[1:-1])

print(a[::2])

print(b)

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

test_tp = (b[0],b[2],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(g2[0,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(h2[1,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

相关推荐
长桥夜波几秒前
【第二十周】机器学习笔记09
人工智能·笔记·机器学习
流烟默7 分钟前
基于Optuna 贝叶斯优化的自动化XGBoost 超参数调优器
人工智能·python·机器学习·超参数优化
海琴烟Sunshine10 分钟前
leetcode 263. 丑数 python
python·算法·leetcode
AI视觉网奇28 分钟前
yolo 获取异常样本 yolo 异常
开发语言·python·yolo
程序员爱钓鱼35 分钟前
Python编程实战 面向对象与进阶语法 迭代器与生成器
后端·python·ipython
程序员爱钓鱼44 分钟前
Python编程实战 面向对象与进阶语法 JSON数据读写
后端·python·ipython
TH88861 小时前
一体化负氧离子监测站:实时、精准监测空气中负氧离子浓度及其他环境参数
python
苏打水com1 小时前
0基础学前端:100天拿offer实战课(第3天)—— CSS基础美化:给网页“精装修”的5大核心技巧
人工智能·python·tensorflow
顾安r2 小时前
11.5 脚本 本地网站收藏(解封归来)
linux·服务器·c语言·python·bash
Blossom.1182 小时前
把AI“贴”进路灯柱:1KB决策树让老旧路灯自己报「灯头松动」
java·人工智能·python·深度学习·算法·决策树·机器学习