python机器学习实战|机器学习入门笔记2-Numpy基础知识

Numpy

1.Numpy优势

  • 开源的python科学计算库,用于快速处理任意维度的数组Numpy中,存储对象是ndarray
  • 创建np.array([])
  • 内存块风格 – 一体式存储
  • 支持并行化运算
  • 效率高于纯python代码–内部释放了GIL

2.N维数组-ndarray

1.ndarray的属性

属性名字属性解释
ndarray.shape数组维度的元组
ndarray.ndim数组维数
ndarray.size数组中的元素数量
ndarray.itemsize一个数组元素的长度(字节)
ndarray.dtype数组元素的类型

2.ndarray的形状
np.array()

3.ndarray的类型
bool、int、float、str…
若不指定,整数默认int64,小数默认float64

3.基本操作

3.1.生成数组方法

1.生成0和1的数组

  • np.ones()
  • np.ones_like()
  • np.zeros()
  • np.zeros_like()
import numpy as np
a=np.ones((3,5))
a
b=np.zeros_like(a)
b

2.从现有数组中生成

  • np.array() – 深拷贝(相当于复制现有的数组,不会因为上边数组的变化而变化
  • np.asarray() – 浅拷贝(会因为现有数组的数据变化而变化)

3.生成固定范围数组

  • np.linspace(start,stop,num,dtype)
    • num – 生成等间隔的多少个
np.linspace(0,100,9,float)
  • np.arange(start,stop,step,dtype)
    • step – 每间隔多少生成数据
np.arange(0,100,9,float)
  • np.logspace(start,stop,num,endpoint)
np.logspace(0,3,num=5)
  1. 生成随机数组
  • 均匀分布生成
    • np.random.uniform(low,high,size)
    • low – 最小值
    • high – 最大值
    • size – 数组形状
a=np.random.uniform(0,2,(5,9))
  • 正态分布
    • np.random.normal(loc,scale,size)
    • loc – 均差
    • scale – 方差
    • size – 数组形状
在这里插入代码片

案例:

import matplotlib.pyplot as plt 
import numpy as np
x=np.random.normal(5,0.2,100000000)
plt.figure(figsize=(20,8),dpi=100)
plt.hist(x,bins=1000)
plt.show()

生成图像:

在这里插入图片描述

3.2数组的索引、切片

直接索引
先对行进行索引,在进行列索引
高维数组索引,从宏观到微观

3.3形状修改

1.对象.reshape()

  • 不进行行列互换,产生新变量

2.对象.resize()

  • 不进行行列互换,直接对原值进行更改
    3.对象.T()
  • 转置,进行行列互换
import numpy as np
a=np.random.normal(48,0.6,(5,4))
print(a)
print(a.reshape([4,5]))
print(a.reshape([-1,10]))
print(a.resize([4,5]))
print(a.T)

3.4类型修改

对象.astype()

3.5数组去重

np.unique()

4.ndarray运算

4.1逻辑运算

  • 大于、小于直接进行判断
  • 赋值:满足要求进行赋值,a[a>1]=2

4.2通用判断函数

  • np.all()
    所有满足要求,才返回True
  • np.any()
    只要有一个满足要求,才返回True

4.3三元运算符

  • np.where()
    满足要求,赋值第一个值,否则赋值第二个值
  • np.logical_and()
  • np.logical_or()

4.4统计运算

  • .min() – 最小值
  • .max() – 最大值
  • .median() – 中位数
  • .mean() – 平均值
  • .std() – 标准差
  • .var() – 方差
import numpy as np
b=np.random.normal(5,0.3,(5,4))
b1=b[:3,:3]
b1>4.8 #逻辑运算
b1[b1>4.8]=5 #赋值
b1
np.any(b1>4.5)
np.all(b1>8)
np.where(b1>4.8,4,3) #b1中大于4.8的元素赋值为4,否则赋值为3
np.logical_and(b1>3.5,b1<5)
np.logical_or(b1>4,b1<5)
b1.min(axis=1) #求每一行最小值
b1.max(axis=0) #求每一列最大值

5.矩阵

5.1数组间的运算

1.数组和数字是直接可以进行运算
2.数组和数组
需要满足广播机制、维度相同、shape对应位置为1

5.2矩阵乘法

  • np.dot() – 点乘
  • np.matmul() – 矩阵相乘
  • 两个矩阵在进行相乘时上边两个没有区别,但dot支持矩阵和数字相乘,matmul不支持
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值