Numpy

本文详细介绍了如何使用numpy进行数据处理,包括数组的维数定义、创建和操作方法,如reshape、索引与切片、广播机制,以及Matplotlib库的基本绘图功能。
摘要由CSDN通过智能技术生成
主要用于处理数据的计算。
shape:数组的维度,从最外层的【】向里数起,返回(外-->内的维数)
            eg:[1,2,3]  =(3,)   ([[[3,3,3],[3,31,1]],[[3,3,3],[3,31,1]]]) =(2, 2, 3)
从最外层的括号看起,数这个括号内有几个item,依次代表shape的每一位数。
每个维度表示一个定义,存储某一类数据。
每一维的item索引都从0开始。
!!!!!!!!
!!!!!!!!!!         这些方法都用于创建一个ndarray数组
numpy数组的维数是秩 rank
list的方法对ndarray也适用
1.a = np.array([ [], [], ...])    //n次嵌套就是n维数组
2.a = np.array([...], ndmin = n )   //指定数组维度
3.a = np.empty([3, 2], dtype = int)    //生成3行2列的int型随机数组
4.arange和切片同理,arange(start, end, step)
5.a = np.linspace(start, end, 差)
6.a = np.logspace(start, end, 个数)
numpy索引与切片:
索引:1.正常索引 从0开始    2.布尔索引:print(a [a > 6])
切片:1.同list    2.用slice函数设置,s = slice(start, end, step)    print(a[s])

数组操作:
1.reshape:改变数组维数,  a = a.reshape(3,4)。
注:reshape后的元素个数应和原来一样
2.
3.翻转数组:交换轴--np.swapaxes(from, to)
4.修改维度:
    增加:a = np.expand_dim(arr, axis)
    删除:a = np.squeeze(arr, axis),
5.在 原轴上拼接数组:a = np.concatenate((a, b), axis = ?)
注:在哪个axis上拼接,这个轴上的长度可以不同,但是其他轴的长度必须相等。 
6.在 新轴上拼接数组:a = np.stack((a, b), axis = ?)    
   水平拼接:a = np.hstack((a, b))
   竖直拼接:a = np.vstack((a, b))
7.分割数组:
   a = np.spilt(a, num):将a等分为num个大小相同的数组
   a = np.spilt(a, [b, c, d, e, .....]):按照位置分割
8.添加删除元素:
   a = np.append(a, values, axis = ?), 当axis没写的时候默认返回一个一维数组。
   a = np.delete(a, obj, axis = ?),obj是删除位置
9.插入元素:
   a = np.insert(a, obj, values, axis = ?),obj是插入位置
常用函数:
1.字符串操作函数
2.数学函数:np.aroud():四舍五入  np.floor()  np.ceil():上下取整
3.统计函数:min max 方差。。。
副本与视图:
副本:深拷贝,改变数据不会影响原数据,物理位置不相同
视图:会影响,物理位置相同
使用原数组 切片 修改数据 会影响原数组数据
使用 view()方法会创建一个新数组,新数组的 维数变化不会影响原数据
使用 copy()方法会创建一个 副本,新的物理地址,完全不影响。
赋值:
a = b后,a和b就指向同一个物理地址,修改一个另一个会跟着变。

Matplotlib:
1.from matplotlib import pyplot as plt
plt.title()    plt.xlabel()    plt.ylabel()    plt.plot(x,y, marker = "")           
2.可以在marker添加格式,改变样式。
3.条形图:plt.bar()
4.频率分布直方图:plt.hist()
5. 子图绘制:plt.subplot()

广播机制:
当运算中两个数组的维度不同时,自动触发广播机制。
规则:
1.每个数组不为空。
2.将两个张量的形状信息右对齐,从右向左观看同一维度下,张量的轴长必须相等, 或者其中一个轴长为1, 或者其中一个轴长为空。
  • 27
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值