课件代码 day1

01- numpy初识

"""
numpy ---科学计算库
结构核心:
    ndarray对象:
        存储多维数组
        单一数据类型
        内存是连续的
    两种存储风格:
        C风格 ---C语言风格----按行优先存储
        F风格 ---fortran语言风格 ----按列优先存储
"""

02-数组的属性

import numpy as np

# 将列表转化为 数组
# arr = np.array([1, 2, 3, 4])
# arr = np.array([[1, 2, 3, 4], [5, 6, 7, 0]])
arr = np.array([[[1, 2, 3, 4], [5, 6, 7, 0]],[[1, 2, 3, 4], [5, 6, 7, 0]]])
print("arr:\n", arr)
print("arr 的类型:\n", type(arr))

# ndarray对象属性
# ndim shape  size  dtype itemsize
print("arr 的维度:\n", arr.ndim)
print("arr 的形状:\n", arr.shape)
# print("arr 的元素的个数:\n", arr.size)
# print("arr 的元素的类型:\n", arr.dtype)
# print("arr 的每一个元素的大小:\n", arr.itemsize)

03-数组的创建

import numpy as np

# 创建数组
# 使用列表转化数组
# arr = np.array([1,2,3,4])
# print("arr:\n",arr)
# print("arr的类型:\n",type(arr))

# 使用arange来创建数组
# 参数1 开始位置
# 参数2 结束位置,不包含结束位置
# 参数3 步长
# 如果开始值为0,且步长为1,那么开始与步长可以省略
# arr = np.arange(0, 5, 1)
# arr = np.arange(5)
# print("arr:\n", arr)
# print("arr的类型:\n", type(arr))

# 创建等差数组
# 参数1  开始值
# 参数2  结束值,包含结束值
# 参数3  生成数组的元素的个数
# arr = np.linspace(0, 5, 4)
# print("arr:\n", arr)
# print("arr的类型:\n", type(arr))

# 创建等比数组
# 参数1 开始值
# 参数2 结束值
# 参数3 生成数组的元素的个数
# 参数base ---默认是10,生成10^开始,10^结束的等比数组
# arr = np.logspace(0,2,3,base=2)
# print("arr:\n",arr)
# print("arr的类型:\n",type(arr))


# 创建元素全部为0的数组
# 参数  生成数组的形状
# arr = np.zeros(shape=(2,2))
# print("arr:\n",arr)
# print("arr的类型:\n",type(arr))

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


# diag --创建一个类似于对角矩阵的数组
# 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个位置
# 当k<0,给定的v 顺着反对角向下移动k个位置
# x = np.array(x)
# print("x:\n", x)
# arr = np.diag(v=x, k=0)
# arr = np.diag(v=x, k=1)
# arr = np.diag(v=x, k=-1)
# arr = np.diag(v=x, k=5)
# arr = np.diag(v=[[[1, 2, 3], [4, 5, 6], [7, 8, 9]],[[1, 2, 3], [4, 5, 6], [7, 8, 9]]], k=5) # 错误的,v的值只能是一维或者2维
# 当v 为2 维的时候
# 当k=0,取v 的对角线
# 当k>0,取对角线向上走k个的结果
# 当k<0,取对角线向下走k个的结果
# print("arr:\n", arr)
# print("arr的类型:\n", type(arr))

# eye ---创建一个类似于单位矩阵的数组
# arr = np.eye(N=2)
# 当只传N时,会创建一个N行,N列的单位矩阵的数组
# arr = np.eye(N=2,M=3)
# 当NM都传且不相等时,先创建较小的单位矩阵数组,然后在多出的行、或者多出列位置补0
# arr = np.eye(N=3,M=2)
# arr = np.eye(N=3,M=2,k=0)
# arr = np.eye(N=3,M=2,k=-1)
# k可以参考diag里面的k进行理解
# print("arr:\n", arr)
# # print("arr的类型:\n", type(arr))


# 创建随机数组
# rand 和 random_sample 和random是一样的
# 创建一个均匀分布的小数数组,随机数在[0,1)之间
# 参数 可以是生成数组的元素个数,也可以是生成数组的行列数
# arr = np.random.rand(10)
# arr = np.random.rand(2,2,3)
# arr = np.random.rand((2,3)) # 错误的,不可以传递形状
# print("arr:\n", arr)
# print("arr的类型:\n", type(arr))

# 创建符合标准正态分布的数组
# 同 standard_normal一样
# 参数可以是元素个数,也可以是生成数组的行列数,不能是形状
# arr = np.random.randn(2,3) ---等学完直方图就可以验证
# print("arr:\n", arr)
# print("arr的类型:\n", type(arr))

# 生成随机整数数组
# 生成[low,high)的数组
# size 可以是元素个数,也可以是生成数组的形状
# arr = np.random.randint(low=0,high=1,size=10)
# arr = np.random.randint(low=0,high=1,size=(2,3))
# arr = np.random.randint(low=0, high=1, size=[2, 3])
# print("arr:\n", arr)
# print("arr的类型:\n", type(arr))

# 生成指定范围内的随机小数的均匀数组
# 生成[low,high)的指定范围的随机均匀分布的小数
# size --可以数组的元素的个数---也可以是数组的形状
arr = np.random.uniform(low=1,high=10,size=(5,5))
print("arr:\n", arr)
print("arr的类型:\n", type(arr))

发布了128 篇原创文章 · 获赞 24 · 访问量 4266

猜你喜欢

转载自blog.csdn.net/return_min/article/details/103873834