创建Numpy数组的 “7种” 方法,最全,必看,速看!

蚂蚁学Python

共 2990字,需浏览 6分钟

 ·

2021-05-12 19:01

1. 本文介绍


  • Ⅰ 创建数组的7种方法;
  • Ⅱ ndarray数组,常用属性介绍;

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)
结果如下:
对于linspace()函数,这里介绍两个参数:
  • 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)
结果如下:
创建对角矩阵,利用 np.diag() 函数。
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(17, 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 # 数组的维度
结果如下:
浏览 337
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报