python实践课程作业Numpy初体验

第1关:Numpy创建数组

任务描述
本关的小目标是,使用 Numpy 创建一个多维数组。

相关知识
在 Python 中创建数组有许多的方法,这里我们使用 Numpy 中的arange方法快速的新建一个数组:

import numpy as np
a = np.arange(5)
其中import numpy as np是指引入Numpy这个库,并取别名为np。之所以取别名,是为了代码编写的方便。a=np.arange(5)是指将数值0 1 2 3 4赋值给a这个变量,这样我们就快速的创建了一个一维数组。

创建多维数组的方法是:

import numpy as np
b = np.array([np.arange(6),np.arange(6)])
这里,我们使用两个arange方法,创建了两个1x6的一维数组,然后使用numpy的array方法,将两个一维数组组合成一个2x6的二维数组。从而达到了创建多维数组的目的。

numpy创建的数组可以直接复制,具体代码示例如下:

import numpy as np
x = [y for y in range(6)]
b=np.array([x]4)
该段代码会创建一个4
6的数组。

编程要求
本关的任务是,补全右侧编辑器中 Begin-End 区间的代码,以实现创建一个m*n的多维数组的功能。具体要求如下:

函数接受两个参数,然后创建与之对应的的多维数组;

# 引入numpy库
import numpy as np

# 定义cnmda函数
def cnmda(m,n):
    '''
    创建numpy数组
    参数:
           m:第一维的长度
           n: 第二维的长度
    返回值:
        ret: 一个numpy数组
    '''
    
    ret = 0
    
    # 请在此添加创建多维数组的代码并赋值给ret
    #********** Begin *********#
    b=np.arange(n);
    ret = np.array([b]*m)
    #********** End **********#
    
    return ret

第2关:Numpy数组的基本运算

任务描述
本关的小目标是,学会Numpy二维数组的一些基本操作。

相关知识
Numpy库可以直接进行一些四则运算,快速的处理两个Numpy数组:

a = np.array([[1,2,3],[4,5,6]])
b = np.array([[4,5,6],[1,2,3]])
向量与向量之间
1.加法
In:np.add(a,b) 或 a+b
Out:array([[5, 7, 9],
[5, 7, 9]])
2.减法
In:np.subt\fract(a,b) 或 a-b
Out:array([[-3, -3, -3],
[ 3, 3, 3]])
3.乘法(X乘)
In:np.multiply(a,b) 或 a * b
Out:array([[ 4, 10, 18],
[ 4, 10, 18]])
4.乘法(点乘)
a = np.array([[1,2,3],[4,5,6]])
b = np.array([4,5,6])
In: np.dot(a,b)
Out:array([32, 77])
5.除法
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[4,5,6],[1,2,3]])
In:np.divide(a,b) 或 a/b
Out:array([[ 0.25, 0.4 , 0.5 ],
[ 4. , 2.5 , 2. ]])
向量与标量之间
a = np.array([[1,2,3],[4,5,6]])

1.加法
In: a +1
Out:array([[2, 3, 4],
[5, 6, 7]])
2.减法
In: a -1
Out:array([[0, 1, 2],
[3, 4, 5]])
3.乘法
In: a*2
Out:array([[ 2, 4, 6],
[ 8, 10, 12]])
4.除法
In: a/2
Out:array([[ 0.5, 1. , 1.5],
[ 2. , 2.5, 3. ]])
5.求余
In:a%2
Out:array([[1, 0, 1],
[0, 1, 0]])
6.矩阵转置
In:a.T
Out:array([[1, 4],
[2, 5],
[3, 6]])
7.矩阵的逆
矩阵可逆的充要条件是矩阵满秩。

import numpy as np
import numpy.linalg as lg
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
In:lg.inv(a)
Out:array([[ 3.15251974e+15, -6.30503948e+15, 3.15251974e+15],
[ -6.30503948e+15, 1.26100790e+16, -6.30503948e+15],
[ 3.15251974e+15, -6.30503948e+15, 3.15251974e+15]])
编程要求
本关的任务是,补全右侧编辑器中 Begin-End 区间的代码,以实现向量与标量相加和相乘的的功能。具体要求如下:

函数接受三个参数,然后进行向量与标量之间的运算;

# 引入numpy库
import numpy as np
# 定义opeadd函数
def opeadd(m
  • 20
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值