第七章课后作业

1.创建一个长度为10的整型数组v1。所有数字不能全部相同。

v1 = np.array([0,1,2,3,4,5,6,7,8,9])

2.创建一个新数组v2,包含第一个问题中创建的v1数组中的所有索引为奇数的元素。

v2 = v1[1::2]

3.采用数组v1的倒序创建一个新数组v3。

v3 = v1[::-1]

4.创建一个命名为m4的任意float类型二维数组,4行5列。所有数据不能完全相同。

m4 = np.linspace(0.1,20,num=20,endpoint=True)
m4.shape=(4,5)

5.以m4为基础创建一个新的二维数组m5,其中每一行都是m4对应行的倒序。

m5 = m4[::,::-1]

6.创建一个新数组m6,行和列都是m4的倒序。

m6 = m4[::-1,::-1]

7.忽略m4的第一行和最后一行,第一列和最后一列后,得到一个新的二维数组m7.

注意:注意:不要修改m4

m7 = m4[1:3,1:4]

8.创建一个2X3X4的全部为7的数组m8,提示:用Numpy的full函数。

m8 = np.full((2,3,4),7)

9.完善函数fun9,参数data是一个整型列表,在任意两个相邻整数之间插入2个8。必须使用numpy。返回结果为Numpy的ndarray类型。

注意:注意:本题严禁使用循环

def fun9(data=[1,2,3,4,5]):
    """
    Arg:
        data : a list as input; e.g. [1,2,3,4,5]
    return a Numpy ndarray; e.g. [1 8 8 2 8 8 3 8 8 4 8 8 5]
    """
    temp=np.array(data)
    nplst=np.full(3*len(data)-2,8)
    nplst[::3]=temp
    return nplst

10.完善函数fun10,参数data是一个整型列表,把data中奇数的数据替换为1, 偶数替换为-1。 必须使用numpy,返回结果为Numpy的ndarray类型。

提示:np.where(condition, x, y)

def fun10(data=[9,2,6,4,2,6,7,8,2,10]):
    """
    Arg:
        data : an array as input; e.g. array([9,2,6,4,2,6,7,8,2,10])
    return a Numpy ndarray; e.g. [ 1 -1 -1 -1 -1 -1  1 -1 -1 -1]
    """
    temp=np.array(data)
    nplst=np.where(temp%2==0,-1,1)
    return nplst

11.完成函数fun11(),从一维数组data中找到所有峰值的索引。说明:峰值点大于左右两侧的数据值,不包含端点。

提示: np.diff,np.sign,np.where(condition)

def fun11(data=[1, 3, 7, 1, 2, 6, 0, 1]):
    """
    Arg:
        data : a list as input; e.g. [1, 3, 7, 1, 2, 6, 0, 1]
    return a numpy ndarray; e.g. [2 5]
    
    """
    temp=np.array(data)
    cha=np.diff(temp)
    fuhao=np.sign(cha)
    cha_=np.diff(fuhao)
    ans=np.where(cha_==-2)[0]+1
    return ans

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值