1. 本文介绍
2. 创建数组的8种方法
① 利用array()函数创建数组
利用array()函数创建数组,括号中传入一个一维列表,就创建一个一维数组;传入一个二维数组,就创建一个二维数组。array1 = [1,2,3]
m = np.array(array1)
print(m)
array2 = [[1,2,3],[4,5,6]]
n = np.array(array2)
print(n)
② 利用arange()和linspace()函数创建 “等差数列” 数组
- np.arange(start,end,step):start和end表示起始位置,step表示步长,用于创建表示等差数列的一维数组,注意得到的结果数组不包含终值;
- np.linspace(start,end,num):start和end表示起始位置,num表示个数,用于创建表示等差数列的一维数组,可以通过endpoint参数指定是否包含终值,默认值为True,即包含终值;
array1 = np.arange(1,10)
print(array1)
array2 = np.arange(1,10,2)
print(array2)
- endpoint=True表示是包含终止值(默认),endpoint=False表示不包含终止值;
- dtype=np.float64指定创建的数组的数据类型默认是float64,你也可以设置为dtype=np.np.int32;
array3 = np.linspace(1,20,num=5,endpoint=False,dtype=np.float64)
print(array3)
array4 = np.linspace(1,20,num=5,endpoint=False,dtype=np.int32)
print(array4)
array5 = np.linspace(1,20,num=5,endpoint=True,dtype=np.float64)
print(array5)
array6 = np.linspace(1,20,num=5,endpoint=True,dtype=np.int32)
print(array6)
③ 创建 “指定数值填充” 的数组
这里介绍几个常用函数,用于生成指定数字填充的数组,会用就行。- np.zeros((x,y)):生成一个x行y列的,元素都是0的二维数组;
- np.ones((x,y)):生成一个x行y列的,元素都是1的二维数组;
- np.full((x,y),value):生成一个x行y列的,元素都是value的二维数组,其中这个value值可以是整数(正整数,0,负整数)或者小数;
array1 = np.zeros((3,4))
print(array1)
array2 = np.ones((3,4))
print(array2)
array3 = np.full((3,4),1.2)
print(array3)
特别注意:其实这三个函数,不仅可以创建一维数组,还可以创建三维数组(如下图所示)。但是,我这里仅仅只是以创建二维数组为例,为大家讲解。④ 复制已有数组,创建指定数值的数组
如果我们知道一个数组的形状,想要创建一个和它形状相同的数组,其实这里也有几个函数。- np.zeros_like():复制已有数组形状,创建一个全0数组;
- np.ones_like():复制已有数组形状,创建一个全1数组;
- np.full_like():复制已有数组形状,创建一个指定数值的数组;
n1 = np.array([1,2,3]);
n2 = np.array([[1,2,3],[4,5,6]])
print(n1)
print(n2)
np.zeros_like(n1)
np.ones_like(n2)
np.full_like(n1,8)
⑤ 创建 “单位矩阵” 和 “对角矩阵”
创建单位矩阵,有 np.eye(x) 和 np.identity(x) 这两个函数。array1 = np.eye(3)
print(array1)
array2 = np.identity(4)
print(array2)
array3 = np.diag([10,20,30])
print(array3)
⑥ 利用logspace()函数创建 “等比数列” 数组
前面我们已经知道,可以利用arange()和linspace()函数,创建等差数列。现在来看看如何利用logspace()函数,创建等比数列;- np.logspace(start, stop, num=50, endpoint=True, base=, dtype=None)
- start和stop表示指数次幂,base表示底数,也就是公比;
- endpoint=True表示是包含终止值(默认),endpoint=False表示不包含终止值;
array1 = np.logspace(1, 7, num=4, endpoint=True, base=2)
print(array1)
⑦ 通过 “自定义函数” 创建数组
# 定义一个函数
def f(x, y):
return x * 2 + 1 + y
# 从一个函数生成一个二维数组;
b = np.fromfunction(f, (3,3), dtype=np.int32)
print(b)
3. 常用属性介绍
对于每一个创建的数组,我们可以通过以下几个属性,来了解该数组。x = np.array([[1,2,3],[4,5,6]])
print(x)
x.shape # 数组形状
x.size # 数组中元素个数
x.dtype # 数组中元素数据类型
x.ndim # 数组的维度