numpy在python中,是一个非常便捷的第三方包,在应用中,numpy向我们提供了许多方法,这里就不得不提到numpy数组的构建和属性。
在numpy中,提供了多种快捷构建数组的方法,接下来将一一介绍:
【构建数组】
【方法一】:用数字“1”填充数组:
# 用数字“1”填充高维数组:
# 构造一个三行三列的高维数组:
# shape=():括号内输入数组维度
# 此处“dtype=None, order="C"”可以省略
array_1 = np.ones(shape=(3, 3), dtype=None, order="C")
print(array_1)
运行结果:
【方法二】:用数字“0”填充数组:
# 用数字“0”填充高维数组:
# 构造一个五行五列的高维数组:
array_2 = np.zeros(shape=(5, 5))
print(array_2)
# 构建一个三维numpy数组:
array_2_0 = np.zeros(shape=(2, 2, 2))
print(array_2_0)
运行结果:
【方法三】:用指定数字填充数组:
# 用指定数字填充高维数组:
# fill_value=:等号后面输入被填充的数字:
array_3 = np.full(shape=(3, 3), fill_value=6)
print(array_3)
运行结果:
【方法四】:生成单位矩阵:
# 单位矩阵:(重要)
# N=:等号后面填入数组的第一维度,也就是行数
# M=:等号后面填入数组的第二维度,也就是列数
array_4 = np.eye(N=5, M=5)
print(array_4)
# k=:等号后面填入的数字是几,会将主对角线向右移动几个单位
array_4_0 = np.eye(N=5, M=5, k=1)
print(array_4_0)
运行结果:
【方法五】:生成等差数组:关注元素个数
# 生成等差数列:(关注元素的个数)
# np.linspace(a,b,c,endpoint=):
# a:起点(包含)
# b:终点:
# 情况一:当endpoint=False时,终点将不包含b
# 情况二:当endpoint=True时,终点包含,默认情况下,重点包含
# c:数组元素个数(数字个数)
# 此处需要引入一个概念,等差数列A(n+1)-A(n)=A(n)-A(n-1)
# 不包含终点:
array_5 = np.linspace(1, 10, 10, endpoint=False)
print(array_5)
# 包含终点:
array_5_0 = np.linspace(1, 10, 10, endpoint=True)
print(array_5_0)
运行结果:
【方法六】:生成等差数组:关注公差大小
# 生成等差数列:(关注公差的大小)
# step=:等号后面为步长,也就是公差
array_6 = np.arange(0, 10, step=2)
print(array_6)
运行结果:
【方法七】:生成有随机整数构成的数组:
# 生成元素为随机整数:
# np.random.randint(a, b, size=)
# a:起点
# b:终点
# size=():生成矩阵的规格
array_7 = np.random.randint(0, 100, size=(5, 5))
print(array_7)
运行结果:
【方法八】:生成元素复合正态分布的数组:
# 标准正态分布:
array_8_0 = np.random.randn(3, 5)
print(array_8_0)
# 常规正态分布:
# np.random.normal(loc=期望,scale=方差)
array_8_1 = np.random.normal(loc=170, scale=5, size=(2, 2))
print(array_8_1)
运行结果:
【方法九】:生成元素为从0-1的随机小数的数组:
# 生成从0-1的随机小数:
array_9 = np.random.random(size=10)
print(array_9)
运行结果:
【方法十】:生成由固定区间内,随机索引构成的数组:
# 生成固定区间内的随机索引:
# 生成从0-10之间的随机索引:
array_10 = np.random.permutation(10)
print(array_10)
运行结果:
【数组属性】
ndim:维度
shape:形状(各维度的长度)
size:总长度
dtype:元素类型
arr = np.random.randint(0, 100, size=(3, 4, 4))
# 获取数组arr维度:
print("arr维度:", arr.ndim)
# 获取数组arr形状:
print("arr形状:", arr.shape)
# 获取数组arr总长度:
print("arr总长度:", arr.size)
# 获取数组arr元素类型:
print("arr元素类型:", arr.dtype)
运行结果: