Numpy基础学习(二)

数组的创建

固定数组的创建与随机数组的创建

import numpy as np

# 固定值数组的创建
# 可以使用np.array来创建数组
# arr = np.array([1, 2, 3, 4])
# print('arr:\n', arr)
# print('arr:\n', type(arr))

# 可以使用np.arange来创建一个一维数组
# 参数1:开始位置
# 参数2:结束位置(默认不包含结束位置)
# 参数3:步长,如果步长为1,可以省略
# arr = np.arange(1, 6, 2)
# print('arr:\n', arr)
# print('arr:\n', type(arr))
# 注意:如果开始为0,且步长为1,那么此时,开始与步长可以同时省略
# arr = np.arange(8)
# print('arr:\n', arr)
# print('arr:\n', type(arr))

# 可以借助np.arange 和 reshape连用来创建高维度数组
# arr = np.arange(16).reshape((2, 2, 2, 2))
# print('arr:\n', arr)
# print('arr:\n', type(arr))

# 创建一个等差数组
# 在数组中,后一个元素减去前一个元素的差值永远都是恒定的,那么该数组--->等差数组
# 参数1:开始位置
# 参数2:结束位置(包含结束位置的)
# 参数3:数组元素的个数
# arr = np.linspace(1, 5, 4)
# print('arr:\n', arr)
# print('arr:\n', type(arr))

# 创建一个等比数组
# 在数组中,如果后一个元素除以前一个元素的商永远都是恒定的,那么该数组---->等比数组
# 参数1:开始位置
# 参数2:结束位置
# 参数3:生成数组的元素的个数
# 参数base :底数
# arr = np.logspace(0, 2, 3, base=10.0)
# arr = np.logspace(0, 2, 3, base=2.0)
# print('arr:\n', arr)
# print('arr:\n', type(arr))

# 创建一个全部为0的数组  ----占位
# 参数:生成数组的形状
# arr = np.zeros((2, 3))
# print('arr:\n', arr)
# print('arr:\n', type(arr))

# 创建全部为1的数组
# arr = np.ones((2, 3))
# print('arr:\n', arr)
# print('arr:\n', type(arr))

# 生成一个类似于对角矩阵的数组
# arr = np.diag(v=[1, 2, 3, 4], k=0)
# arr = np.diag(v=[1, 2, 3, 4], k=1)
# arr = np.diag(v=[1, 2, 3, 4], k=-1)
# 当v为一维时,k=0时,即类似对角矩阵数组
# 当v为一维时,k>0时,v沿着反对角线向上挪动|k|个单位
# 当v为一维时,k<0时,v沿着反对角线向下挪动|k|个单位

# print(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]))
# arr = np.diag(v=[[1, 2, 3], [4, 5, 6], [7, 8, 9]], k=0)
# arr = np.diag(v=[[1, 2, 3], [4, 5, 6], [7, 8, 9]], k=1)
# arr = np.diag(v=[[1, 2, 3], [4, 5, 6], [7, 8, 9]], k=-1)
# 当v为二维时,k=0时,拿取的是v的正对角线上的元素
# 当v为二维时,k>0, 拿取的是沿着反对角线向上挪动|k|个单位时的正对角线的元素
# 当v为二维时,k<0, 拿取的是沿着反对角线向下挪动|k|个单位时的正对角线的元素
# print('arr:\n', arr)
# print('arr:\n', type(arr))

# 创建一个类似于单位矩阵的数组
# arr = np.eye(N=3, M=3, k=0)
# arr = np.eye(N=3, M=4, k=0)
# arr = np.eye(N=4, M=3, k=0)
# arr = np.eye(N=4, M=3, k=1)
# N为行,M为列
# 当N=M,或者只传N时,k=0,生成一个类似于单位矩阵的数组
# k的变化参考diag-->k>0沿着反对角线向上挪动,k<0,沿着反对角线向下挪动

# 当N!=M时,生成一个N行,M列的一个类似于单位矩阵的数组
# 如果N>M,可以认为生成一个M行M列的单位矩阵数组,再补上一个N-M行的0
# 如果N<M,可以认为生成一个N行N列的单位矩阵数组,再补上一个M-N列的0
# k的变化参考diag,--->k>0沿着反对角线向上挪动,k<0沿着反对角线向下挪动
# print('arr:\n', arr)
# print('arr:\n', type(arr))

#  随机数组创建
# 创建一个[0,1)均匀分布的数组
# 均匀分布:---落在指定区间内的概率都是一样的
# 参数:size ---生成数组的元素个数,或者就是生成数组的形状
# arr = np.random.random(10)
# arr = np.random.random((2, 3))
# print('arr:\n', arr)
# print('arr:\n', type(arr))

# 也可以使用
# 参数:生成数组的元素个数、或者生成数组的行、列数
# arr = np.random.rand(10)
# arr = np.random.rand(2, 3)
# print('arr:\n', arr)
# print('arr:\n', type(arr))

# 创建一个服从标准正态分布的数组
# 标准正态分布---->均值为0,标准差为1
# 参数:生成数组的元素个数、或者生成数组的行、列数
# arr = np.random.randn(10)
# arr = np.random.randn(2, 3)
# print('arr:\n', arr)
# print('arr:\n', type(arr))


# 创建指定范围内的整数数组 ----[low,high)
# 参数low:最小值
# 参数high:最大值
# 参数size:元素的个数 或者形状
# arr = np.random.randint(low=1, high=10, size=(2, 3))
# print('arr:\n',arr)
# print('arr:\n', type(arr))


# 创建指定范围内随机小数数组 ---[low,high)
# 参数low:最小值
# 参数high:最大值
# 参数size:元素的个数 或者形状
# arr = np.random.uniform(low=0, high=10, size=(2, 3))
# print('arr:\n', arr)
# print('arr:\n', type(arr))

正态分布图解

原文地址:https://www.cnblogs.com/duxiangjie/p/15744191.html