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

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

相关推荐
小虎牙^O^14 分钟前
2024春秋杯密码题第一、二天WP
python·密码学
梦魇梦狸º1 小时前
mac 配置 python 环境变量
chrome·python·macos
查理零世1 小时前
算法竞赛之差分进阶——等差数列差分 python
python·算法·差分
查士丁尼·绵3 小时前
面试-字符串1
python
好评笔记3 小时前
AIGC视频生成模型:Stability AI的SVD(Stable Video Diffusion)模型
论文阅读·人工智能·深度学习·机器学习·计算机视觉·面试·aigc
史嘉庆3 小时前
Pandas 数据分析(二)【股票数据】
大数据·数据分析·pandas
小兜全糖(xdqt)4 小时前
python中单例模式
开发语言·python·单例模式
Python数据分析与机器学习4 小时前
python高级加密算法AES对信息进行加密和解密
开发语言·python
noravinsc5 小时前
python md5加密
前端·javascript·python
唯余木叶下弦声5 小时前
PySpark之金融数据分析(Spark RDD、SQL练习题)
大数据·python·sql·数据分析·spark·pyspark