【Python】深度学习常用到的 numpy 库函数详解,更合适零基础的同学~

Numpy(Numerical Python)是 Python 语言的一个扩展程序库,支持大维度数组与矩阵运算,此外也针对数组运算提供了大量的数学函数库。Numpy 为开放源代码并且由许多协作者共同维护开发。

为什么要用numpy?

Python中提供了list容器,可以当作数组使用。但列表中的元素可以是任何对象,因此列表中保存的是对象的指针,这样一来,为了保存一个简单的列表[1,2,3]。就需要三个指针和三个整数对象。对于数值运算来说,这种结构显然不够高效。

Python虽然也提供了array模块,但其只支持一维数组,不支持多维数组(在TensorFlow里面可以理解为矩阵),也没有各种运算函数。因而不适合数值运算。

Numpy的出现弥补了这些不足。

Ndarray 对象

NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。

ndarray 中的每个元素在内存中都有相同存储大小的区域。

ndarray 内部由以下内容组成:

  • 一个指向数据(内存或内存映射文件中的一块数据)的指针。
  • 数据类型或 dtype,描述数组中固定大小值的格子。
  • 一个表示数组形状(shape)的元组,表示各维度大小的元组。
  • 一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数。

ndarray 的内部结构:
在这里插入图片描述
跨度可以是负数,这样会使数组在内存中后向移动,切片中 obj[::-1] 或 obj[:,::-1] 就是如此。

创建一个 ndarray 只需调用 Numpy 的 array 函数即可。

1. array()

作用:创建ndarray数组。
语法格式如下:

array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)
常用参数作用
object输入数据即为数组组成元素
dtype指定数组元素类型,默认为输入数据类型,可自行设置
order{‘K’,‘A’,‘C’,‘F’} 可选
ndmin指定结果数组应具有的最小维数
代码示例如下:
np.array([[1,2,3],
         [4,5,6]])

运行结果如下:
在这里插入图片描述
还可以参考这篇文章,介绍的也比较详细。 https://blog.csdn.net/qq_43328040/article/details/106601065

2. exp()

计算输入数组中所有元素的以 e 为底的指数。代码示例如下:

X=np.array([[1,2,3],
           [4,5,6]])
print(np.exp(X))

运行结果如下:
在这里插入图片描述

3. shape()

返回数组的维度。代码示例如下:

print(np.shape([[1, 2]]))
print(np.shapr([1,2],axis=0))

运行结果如下:

4. reshape()

https://blog.csdn.net/tracy_leaf/article/details/79297121

5. squeeze()

https://blog.csdn.net/weixin_41668995/article/details/109408772

6. arange()

https://blog.csdn.net/reallocing1/article/details/82994201

7. squeeze()

压缩维度。从数组的形状中删除单维度条目,即把 shape 中为1的维度去掉。

用法:numpy.squeeze(a,axis = None)

 1)a表示输入的数组;
 2)axis用于指定需要删除的维度,但是指定的维度必须为单维度,否则将会报错;
 3)axis的取值可为 None 或 int 或 tuple of ints, 可选。若axis未赋值,则默认删除所有单维度的条目;
 4)返回值:数组;
 5) 不会修改原数组。

还可以参考这篇文章,介绍的也比较详细。 https://blog.csdn.net/zenghaitao0128/article/details/78512715

8. np.random.randn()

https://blog.csdn.net/weixin_42029738/article/details/81977492

9. np.round()

np.round(输入数据, decimal=保留的小数位数)
原则:对于浮点型数据,四舍六入,正好一半(x.5)就取偶数边界值。

np.round(4.5, 0)  # 正好一半,取到偶数
Out[56]: 4.0
np.round(4.5, 1)  
Out[57]: 4.5
np.round(4.55, 1)
Out[58]: 4.6
np.round(4.55, 2)
Out[59]: 4.55

10. np.size()

size()函数主要是用来统计矩阵元素个数,或矩阵某一维上的元素个数的函数。

语法格式:numpy.size(a, axis=None)
a:输入的矩阵
axis:int型的可选参数,指定返回哪一维的元素个数。当没有指定时,返回整个矩阵的元素个数。

>>> a = np.array([[1,2,3],[4,5,6]])
>>> np.size(a)
6
>>> np.size(a,1)
3
>>> np.size(a,0)
2

axis的值没有设定,返回矩阵的元素个数
axis = 0,返回该二维矩阵的行数
axis = 1,返回该二维矩阵的列数

注:第二个参数axis从0开始,不是从1开始

11. np.random.permutation()

https://blog.csdn.net/weixin_44188264/article/details/93752505

12.np.random.shuffle()

https://blog.csdn.net/lemonxiaoxiao/article/details/109239996

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早知晓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值