数组分析一:numpy的使用


https://crossincode.com/vip/homework/254/

import numpy as np
import matplotlib.pyplot as plt

#任务1:用 numpy 创建一个 2 * 2 的二维数组 ndarray,指定元素类型为 float,命名为 arr1
def assign1():
    arr1 = np.ndarray([2,2],dtype=float)
    print("-----------------assign1-------------------")
    print(arr1)

#任务二:生成元素全为 0 的 6 * 6 矩阵 arr2;元素全为 1 的 6 * 6 矩阵 arr3;以及 6 * 6 的单位矩阵 arr4(任务提示:单位矩阵对角线元素为 )
def assign2():
    arr2 = np.zeros([6,6])
    arr3 = np.ones([6,6])
    arr4 = np.eye(6)#生成一个n*n的单位矩阵
    print("-----------------assign2-------------------")
    print(arr2)
    print(arr3)
    print(arr4)

#任务三:运用 arange 函数生成生成 [0, 10) 区间内,步长为 2 的整数序列 arr5
def assign3():
    arr5 = np.arange(0,10,2)
    print("-----------------assign3-------------------")
    print(arr5)

#任务四:生成 0~10 间的等差数列 arr6,元素个数为 6
def assign4():
    arr6 = np.linspace(0,10,6)
    arr6 = np.linspace(0,10,6,endpoint=False)#endpoint默认是true,false的话表示是否包括末尾值
    print("-----------------assign4-------------------")
    print(arr6)

#任务五:创建一个长度为 10 的随机数组(每个元素都是整数)并将最大值替换为 0
# (任务提示:numpy 随机函数为 random,利用 argmax() 得到数组最大值的位置,然后再将此位置数字利用切片替换
def assign5():
    arr7 = np.random.randint(1,100,10)#最小值 最大值 数组size,这样写默认是一维,高维的要加[x,x]
    print("-----------------assign5-------------------")
    print(arr7)
    mx = np.argmax(arr7)#一维数组的argmax返回的就是最大值所在位置,高维数组中第二个参数axis=0则返回每一行最大值在哪一列,axis=1则返回每一列最大值在那一行
    arr7[mx]=0
    print(arr7)

#任务六:计算数组 x = np.array([1,2,3,2,3,4,3,4,5,6]) 和数组 y = np.array([7,2,10,2,7,4,9,4,9,8]) 之间的欧式距离
def assign6():
    x = np.array([1, 2, 3, 2, 3, 4, 3, 4, 5, 6])
    y = np.array([7, 2, 10, 2, 7, 4, 9, 4, 9, 8])
    # 这个是直接用欧式距离公式直白写法
    dist = np.sqrt(np.sum(np.square(x - y)))
    # numpy自带求欧式距离方法
    dist1 = np.linalg.norm(x - y)
    print("-----------------assign6-------------------")
    print(dist,dist1)

#任务七:利用 seed 生成一组固定的随机数 np.random.seed(1) (阅读参考文章⑫),并用此组成模拟的资金价值曲线 values = np.random.randn(1000).cumsum()
#请利用 matplotlib 作出该资金价值曲线图
def assign7():
    np.random.seed(1)
    x=[1,2]
    values = np.random.randn(1000).cumsum()
    print("-----------------assign7-------------------")
    plt.figure(figsize=(9,9),dpi=60)
    plt.plot(values)#缺省x的时候那么x默认长度为len(y)
    plt.tick_params(labelsize=19)#控制坐标轴字体大小
    plt.xlabel("Day",fontsize = 19)
    plt.ylabel("Values",fontsize = 19)
    plt.xlim(0,1000,200)
    plt.ylim(0,50,10)
    ax = plt.subplot()
    # ax.set_xlim(1, )
    # ax.set_ylim(1, )
    plt.show()
    # #附加任务八:求最大回撤率
    # max_drawdown = np.max(np.maximum.accumulate(values) - values)
    # print(max_drawdown)
assign1()
assign2()
assign3()
assign4()
assign5()
assign6()
assign7()



文章作者: 灿若星河
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 灿若星河 !
评论
 上一篇
安卓开源项目环境的环境搭建问题 安卓开源项目环境的环境搭建问题
在学习和模仿开源android项目之前,先检查app的grandle和在外层目录的grandle,特别是app中的grandle,如果SDK的版本高于28会出现相当多的依赖添加失败的问题,即使按照提示编程 androidx 也不管用的话,最
下一篇 
背包模型进阶篇 背包模型进阶篇
一. 二维01背包问题宠物小精灵之收服 : https://www.acwing.com/problem/content/1024/ 一.模型定义一维背包问题是n个物品中选,求总体积不超过V的最大价值二维背包问题不过是多加了一个和V同属性的
2020-08-07
  目录