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