机器学习笔记(二)numpy用法

numpy

1, 导入numpy,如果没有就pip install numpy

import numpy as np

2, 生成numpy数组,传入一个列表

np.array()

3, numpy数组之间的加减乘除需要元素个数相同,不同会报错
4, n维数组,数学上将一维称为向量,二维称为矩阵,三维及以上称为多维向量

d2 = np.array([[1,2],[3,4]])
# 查看矩阵的形状
d2.shape  # (2,2)
# 查看矩阵的元素的数据类型
d2.dtype  # dtype('int32')
# 查看维数
d2.ndim  # 2
# 查看元素数量
d2.size  # 4
# 查看数组元素的长度(字节数)
d2.itemsize  # 4 

5, 广播
用于形状不同的数组之间的运算
满足1, 数组的某一维度等长
或者2, 其中的一个数组的维度为1
可以进行运算
情况1:

a = np.array([[1,2],[3,4]])
b = np.array([10,20])
# 他们的一维长度都是2
a * b  # array([[10, 40],[30, 80]])
# 这里将[10,20]自动转换为[[10,20][10,20]]

情况2:

a = np.array([[1,2],[3,4]])
b = 10
a * b  # array([[10, 20],[30, 40]])
# 这里将10自动转换为[[10,10],[10,10]]

6, 访问元素

a = np.array([[1,2],[3,4]])
# 访问第0行
a[0]  # array[1,2]
# 访问第0行第一个
a[0][1]  # 2
# 转化为一维数组
a = a.flatten()  # [1,2,3,4]
# 访问索引为1,2,3的时候不能直接使用数字索引
a[np.array([1,2,3])]  # array([2, 3, 4])

7,生成一个全是1的x行y列的矩阵

x,y = 2,1 
np.ones([x,y]) # [[1.],[1.]]数据类型为flote 

8,深拷贝浅拷贝

a = np.array([[1,2],[3,4]])
# 深拷贝,相当于一个快捷方式,原文件改变,新文件也改变
a1 = np.array(a)
# 浅拷贝,相当于一个新的文件,和原文件没有关系
a2 = np.asarray(a)
a[0][0] = 10
a1  # [[10,2],[3,4]]
a2  # [[1,2],[3,4]]

9,numpy中的一些方法

array1 = np.array([1,2,2])
array2 = np.array([[1,3,2,4,3,5],[1,5,4,3,3,4]])
# 去重
np.unique(array1)  # array([1,2]) 
np.unique(array2)  # array([1,2,3,4,5])
# 转置
array2.T  # array([[1, 1],[3, 5],[2, 4],[4, 3],[3, 3],[5, 4]])
# 标准差
np.std(array1)  # 0.4714045207910317
# 方差
np.var(array1)  # 0.2222222222222222
# 最大元素下标
np.argmax(array1)  # 1
# 最小元素下标
np.argmin(array1)  # 0
# 数组变形
array1.reshape([3,1]) # 产生新的变量,即不修改原值
# array([[1],[2],[2]])
array1.reshape([-1,1])  # 自动计算,此时-1相当于3
# array([[1],[2],[2]])
array1.resize([1,3])  # 不产生新的变量,在原值上修改

10, 从标准正态分布中返回一个或多个样本值

np.random.normal(loc,scale,size) # loc为均值,scale为标标准差,size为个数

11,其他

# 生成指定数量的等差数组linspace
# 生成0-10的三个数
np.linspace(0,10,3)  # array([ 0.,  5., 10.])
# 指定步长arange
np.arange(0,10,3)  # array([0, 3, 6, 9])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值