numpy.array的操作在python的数值运算中非常常用,可以用于生成不同的数组。在本文中,我们介绍一些numpy.array的基础操作。
一般需要两个参数,分别是起点和终点(不包括终点)。当我们添加第三个参数时,我们就设定了每一步的步长,默认值为1。
import numpy as np
>>> a = np.arange(0,5)
>>> a
array([0, 1, 2, 3, 4])
#同样的范围将步长设定为0.5
>>> b = np.arange(0,5,0.5)
>>> b
array([0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])
用于设置等差数列。一般都有三个参数,包括起点,终点和所需数字的个数。与np.arange()不同的是,np.linspace()包括终点。
#以1为起点,5为终点,需要5个数
>>> c = np.linspace(1,5,5)
>>> c
array([1., 2., 3., 4., 5.])
#我们也可以通过限定条件,使其不包含终点
>>> d = np.linspace(1,5,5,endpoint = False)
>>> d
array([1. , 1.8, 2.6, 3.4, 4.2])
用于构造等比数列。一般需要三个参数,np.logspace(a,b,c)的意思是以 1 0 a 10^a 10a为起点, 1 0 b 10^b 10b为终点,其中需要c个数。如果我们不想以10为底,可以使用"base = “修改,和np.linspace()一样,默认"endpoint = True”
#以1为起点,1000为终点,需要四个数
>>> e = np.logspace(0,3,4)
>>> e
array([ 1., 10., 100., 1000.])
#我们设置以2为底
>>> f = np.logspace(0,3,4,base = 2)
>>> f
array([1., 2., 4., 8.])
#生成都是1的矩阵
>>> np.ones((2,2))
array([[1., 1.],
[1., 1.]])
#生成都是0的矩阵
>>> np.zeros((2,2))
array([[0., 0.],
[0., 0.]])
#生成单位矩阵
>>> np.eye(2,2)
array([[1., 0.],
[0., 1.]])
#生成对角矩阵
>>> g = [1,2,3] #或者g = np.array([1,2,3])都行
>>> np.diag(g)
array([[1, 0, 0],
[0, 2, 0],
[0, 0, 3]])
astype()函数可以转换数组中数据的类型。
我们发现,直接使用np.array()生成的数组都是整数(int)类型。如何强制生成float类型的数组。
>>> h = np.array([1,2,3,4],dtype = np.float)
>>> h
array([1., 2., 3., 4.])
>>> h.astype(int)
array([1, 2, 3, 4])
此处我们将说明type()和.dtype的区别:
对于一个数组而言,type()函数返回的是数组;.dtype函数返回的是数组中内容的数据类型。
>>> j = np.array([[1,2],[3,4]],dtype = float64)
>>> type(j)
numpy.ndarray
>>> j.dtype
dtype('float64')