Numpy(未完结)
说明:通常所说的"数组","Numpy数组","ndarray"基本上都是指同一个东西,即ndarray对象。
Numpy常用函数以及用法
(1)创建ndarray数组
- 使用array函数
说明:他可以接收一切序列型的对象,然后产生一个新的含有传入数据的Numpy数组。除非用dtype自定义类型,否则他会根据你传入的数据类型自动帮你匹配合适的类型。
此类型规则为:如果有字符串,则优先字符串,如果没有字符串而有复数类型,则系统默认帮你判定为复数类型。然后依次为浮点数和整数。即优先级为"字符串>复数>浮点数>整数"。
代码如下:
import numpy as np array = np.array(['Hello', 1+2j, 5.20, 5]) for i in array: print(i, ':', type(i)) print('===============================') array = np.array([1+2j, 5.20, 5]) for i in array: print(i, ':', type(i)) print('===============================') array = np.array([5.20, 5]) for i in array: print(i, ':', type(i)) print('===============================') array = np.array([5]) for i in array: print(i, ':', type(i))
输出结果为:
Hello : <class 'numpy.str_'> (1+2j) : <class 'numpy.str_'> 5.2 : <class 'numpy.str_'> 5 : <class 'numpy.str_'> =============================== (1+2j) : <class 'numpy.complex128'> (5.2+0j) : <class 'numpy.complex128'> (5+0j) : <class 'numpy.complex128'> =============================== 5.2 : <class 'numpy.float64'> 5.0 : <class 'numpy.float64'> =============================== 5 : <class 'numpy.int32'>
- 使用ones和zeros函数
除此之外,还可以使用ones函数和zeros函数来创建一个全是1或者全是0的数组,我们只需要传递给他们一个需要创建的数组的形状即可。
代码示例如下:
import numpy as np array = np.ones((3, 3)) print(array) print('=================') array = np.zeros((3, 3)) print(array)
输出结果:
[[1. 1. 1.] [1. 1. 1.] [1. 1. 1.]] ================= [[0. 0. 0.] [0. 0. 0.] [0. 0. 0.]]
- empty函数
函数说明:empty函数可以创建一个没有任何具体指的函数。我们在使用empty的时候只需要传入一个表示形状的元祖就可以了。值得注意的是,empty创建出来的数组初始值是不确定的随机值。
例如:
import numpy as np array = np.empty((3, 3)) print(array)
输出结果如下(完全没有规律):
[[7.01573217e-322 0.00000000e+000 0.00000000e+000] [0.00000000e+000 0.00000000e+000 1.14623230e-321] [1.24610926e-306 1.61271680e-312 0.00000000e+000]
- arange函数
函数说明:arange函数用法与range函数类似。不同的是arange生成的是ndarray对象,即numpy数组。
例如运行如下代码:
import numpy as np | |
array1 = np.arange(10) | |
print(array1, type(array1)) |
输出结果如下:
[0 1 2 3 4 5 6 7 8 9] <class 'numpy.ndarray'>
- linspace函数
函数说明:此函数与arange函数有些相似。调用方法为 np.linspace(start= ,stop= ,num= ,endpoint= ,retstep= ,dtype= ,axis= )
参数说明:
-
start是数组起始数字
-
stop是数组结束数字
-
num(可选)控制结果中共有多少个元素
-
endpoint(可选)决定了中止值(stop)是否包含在内。若值为True,则包含stop,否则不包含。如果不写默认是True
-
retstep(可选)默认是False,如果指定为True,则结果会返回步长以及序列数组,从而产生一个元组作为输出
-
dtype(可选)为生成的数组的类型,可以自定义数据类型,不写则按那个规则 字符串>复数>浮点数>整数
-
axis(可选)默认是0 。很多函数都会有这个参数,这是个轴的意思。具体定义如下图:
运行如下代码:
import numpy as np array1 = np.linspace(1,10,10) print(array1) print('='*30) array2 = np.linspace(start = 1, stop = 10, num = 10, endpoint=True, dtype=int, ret