当前位置: 首页 > article >正文

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

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


http://www.kler.cn/a/409613.html

相关文章:

  • 网络爬虫——分布式爬虫架构
  • JS听到了替罪的回响
  • 第四讲:数据类型与变量:基本数据类型、变量声明与初始化
  • 爬虫获取的数据如何用于市场分析?
  • Javascript高级—深入JS模板字符串的高级用法
  • 从零开始学习数据库 day0(基础)
  • 内存不足引发C++程序闪退崩溃问题的分析与总结
  • 设计模式:7、策略模式(政策)
  • SpringBoot源码解析(五):准备应用环境
  • Design a Multiplayer Hero Shooter Map in UE5
  • Cocos游戏优化
  • 大模型论文速递(11.23-11.25)
  • Linux操作系统学习---初识环境变量
  • 力扣-Hot100-栈【算法学习day.40】
  • 梧桐数据库的高效索引技术行业调研报告
  • 理解clickhouse 里的分区和分片键区别
  • 降本增效的新利器
  • 第49届ICPC亚洲区域赛,非凸科技再次支持上海赛站
  • TensorFlow手动更新模型特定变量
  • 重写radioselect类自定义个性化单选框
  • Flink四大基石之Window
  • 黄仁勋:人形机器人在内,仅有三种机器人有望实现大规模生产
  • Web 学习笔记 - 网络安全
  • 简单快速区分Shell, sh, bash:
  • C/C++中的回调用法
  • 【测试工具JMeter篇】JMeter性能测试入门级教程(二)出炉,测试君请各位收藏了!!!