第二章 NumPy创建特殊数组
00 min
2024-5-13

1、生成全0/1/n数组

1.1 np.zeros, np.ones, np.full

  • np.zeros(shape, dtype=float)
    • 形状为shape,元素全为0。
  • np.ones(shape, dtype=float)
    • 元素全为1
  • np.full(shape, fill_value)
    • 元素全为fill_value

1.2 np.zeros_like, np.ones_like

  • np.zeros_like(a, dtype=None, order="K", subok="True")
    • 返回与a相同的shape,且元素为0的ndarray对象。
  • np.ones_like(a, dtype=None, order="K", subok="True")
    • 返回与a相同的shape,且元素为1的ndarray对象。

2 生成连续,等差和等比数列

2.1 连续数组

  • np.arange([start, ]stop, [step, ]dtye=None)
    • 返回(默认从0开始,公差为1)等差数列作为元素的数组对象。

2.2 等差数组

  • np.linspace(start stop, num=50, endpoint=True, retstep=False, dtype=None)
    • start:(int/float)用于指定数列的起点
    • stop:(int/float)用于指定数列的终点
    • num:(int)可省,初始为50,用于指定生成数组的元素个数
    • endpoint:(bool)可省,初始为True,指定数组是否包扩右stop
    • retstep:(bool)可省,初始为False,用于指定在生成的数列后面是否显示公差,如果是True就显示,反之不显示
    • dtype:(数组类型)初始为None,指定生元素数据类型,如果不指定,一般自动指定为float64型。
参数较多,一般掌握start,stop和num即可。注:默认生成的数列既包含start也包含stop,故公差为(stop - start +1)/num,如果endpoint=False,则公差为(stop - start)/num

2.3 等比数组

  • np.linspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)
    • base:等比数组的基数。开始值为start**base,结束值为stop**base

3 生成单位矩阵

单位矩阵就是对角线全为1的正方矩阵(N x N),通常情况下多使用I或者E表示。可以通过np.identity和np.eye两个函数来创建。
  • np.identity函数生成行列数相等的正方矩阵,np.eye函数可以通过指定的行数和列数的方式生成单位矩阵
  • np.eye函数可以指定元素为1对角线位置
  • 一般情况用np.indentity函数即可,需要特殊指定的单位矩阵,用np.eye函数

3.1 np.eye

  • N:(int)用于指定需要生成的单位矩阵行数
  • M:(int)可省,初始为None,用于指定需要生成的单位矩阵列数
  • k:(int)可省,初始为0,用于指定元素为1对角线的位置,k为正,对角线就位于上方,反之在下方
  • dtype:略
  • order:(“C”/”F”)可省,初始为“C”用于指定输出结果的数组的值是按行标准返回还是按照列标准返回。

3.2 np.indentity

4 生成未初始化数组

 

5 生成随机数数组