文章目录
最近重新学习发现,NumPy 中有很多很多的函数,以下根据个人和结合官网对函数的理解,整理了一些关于NumPy 中常用的一些基础函数。本文仅供参考,如有错误请予以批评指正,如需转载请标记出处。
1 NumPy - 数组生成函数
Numpy 中最常规的就是利用array函数来生成一个新的包含传递数据的NumPy 数组。array函数,参数如下:
import numpy as np
array1=np.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
参数 | 描述 |
---|---|
object |
传入的数据,可以使列表(list)、集合(set)、元组(tuple)、字符串(str)等 |
dtype |
数组的所需数据类型,默认为空,可选,如:dtype=np.float64 等 |
copy |
对象是否需要复制,默认为True |
oder |
C(按行)、F(按列)、A(任意,默认) |
subok |
默认情况下,返回的数组被强制为基类数组。 如果为True,则返回子类 |
ndmin |
指定返回数组的维数,如ndmin=2 。 |
除了array函数以外,还有以下一些生成函数,只是参数或多或少发生改变:
生成函数 | 描述 |
---|---|
array |
传入的数据x(可以是列表、集合、元组、字符串等)转换为ndarray,具体参数如上表 |
asarray |
array和asarray作用相同,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会。numpy.asarray(a, dtype=None, order=None) |
empty |
它创建指定形状和dtype的未初始化数组。 它使用以下构造函数:numpy.empty(shape, dtype = float, order = 'C') |
zeros |
返回特定大小,以 0 填充的新数组: numpy.zeros(shape, dtype = float, order = 'C') |
ones |
返回特定大小,以 1 填充的新数组: numpy.ones(shape, dtype = None, order = 'C') |
eye |
创建一个N * N的单位矩阵(对角线为1,其余为0): numpy.eye(N, M=None, k=0, dtype=<class 'float'>, order='C') |
arange |
这个函数返回ndarray对象,包含给定范围内的等间隔值:numpy.arange(start, stop, step, dtype) |
linspace |
此函数类似于arange()函数。 在此函数中,指定了范围之间的均匀间隔数量,而不是步长。 此函数的用法如下:numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) |
logspace |
此函数返回一个ndarray对象,其中包含在对数刻度上均匀分布的数字。 刻度的开始和结束端点是某个底数的幂,通常为 10:numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None) |
*注:
shape
空数组的形状,整数或整数元组;dtype
所需的输出数组类型,可选;order
'C’为按行的 C 风格数组,'F’为按列的order
'C’为按行的 C 风格数组,'F’为按列的Fortran 风格数组;start
序列的起始值;stop
序列的终止值,如果endpoint
为true
,该值包含于序列中;num
要生成的等间隔样例数量,默认为50;retstep
如果为true
,返回样例,以及连续数字之间的步长;base
对数空间的底数,默认为10*
例如:
import numpy as np
ndarray = np.empty((4,4))
print("4x4主对角为1的empty矩阵")
print(ndarray)
ndarray1 = np.ones((4,4))
print("4x4元素全为1矩阵")
print(ndarray1)
ndarray2 = np.zeros((4,4))
print("4x4元素全为0矩阵")
print(ndarray2)
ndarray3 = np.eye(4)
print("4x4单位矩阵")
print(ndarray3)
ndarray4 = np.linspace(0,100,num=11)
print("0-100,生成11个数")
print(ndarray4)
ndarray5 = np.logspace(0,100,num=11)
print("0-100,生成11个对数")
print(ndarray5)
输出:
4x4主对角为1的empty矩阵
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
4x4元素全为1矩阵
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
4x4元素全为0矩阵
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
4x4单位矩阵
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
0-100,生成11个数
[ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.]
0-100,生成11个对数
[1.e+000 1.e+010 1.e+020 1.e+030 1.e+040 1.e+050 1.e+060 1.e+070 1.e+080
1.e+090 1.e+100]
2 NumPy - 数组的一些基本属性
NumPy 数组的维数称为秩(rank),秩就是轴的数量,即数组的维度,一维数组的秩为 1,二维数组的秩为 2,以此类推。
import numpy as np
#生成一个5*5的单位矩阵
ndarray = np