课堂1
numpy 索引和切片作业
作业1
将np.arange(10)数组中的奇数全部替换成-1
思路:
首先考虑如何将[0,10)以内的奇数都获取到,并将奇数赋值为-1
作业2
有一个4行4列的数组(比如:np.arange(16).reshape((4,4))),将其中对角线的数取出来形成一个一位数组。提示(使用np.eye)
思路:
先取出对角线的数,再进行降维 (优先方法2)
方法1:
方法2:(numpy自带函数,对角线分割)
方法3:np.where(条件,真值,假值)需要接收返回值
作业3
有一个4行4列的数组(比如:np.arange(16).reshape((4,4))),请取出其中(0,0),(1,2),(3,2)的点
作业4
有一个4行4列的数组(比如:np.arange(16).reshape((4,4))),请取出其中第2-3行(包括第3行)的所有数据
拓展:如何提取出第2-3行中的第2-3列
作业5
有一个8行9列的数据(比如:np.arange(72).reshape((8,9))),请将其中第1-5行(包含第5行)的第8列大于3的数全部都取出来
思路:
先提取第1-5行数据,在提取第8列的数据,在取出大于3的数据
课堂2
numpy练习题
np.random.seed(1)
np.random.randint(0,20, size=(4,5))
1、查看numpy的版本号;已完成
2、如何创建一个所有值都是False的布尔类型的数据;
3、将一个有10个数的一维数组的形状进行改变;已完成
4、将数组中所有偶数都替换成0(改变原来数组和不改变原来数组两种方式实现);已完成
5、创建一个一维且有10个数的数组,元素是从0~1之间,但是不包含0和1;已完成
6、求以下数组大于等于5并且小于等于10的数组;已完成
7、将一个二维数组的行和列分别进行逆向;
8、如何找到数组中每行的最大值;已完成
9、如何按照行求最小值和最大值相除的结果;已完成
10、判断两个数组是否完全相等;已完成
11、设置一个数组不能修改值;
12、找到数组中离某个元素的最近的值;
作业1、查看numpy的版本号
import number as np
print np.__verison__
作业3、将一个有10个数的一维数组的形状进行改变
思路:创建一个有10个数的一维数组,再对其进行形状改变(改编成二维,则面积必须等于一维的长度)
作业4、将数组中所有偶数都替换成0(改变原来数组和不改变原来数组两种方式实现)
思路:改变原来数组即深拷贝(拷贝的是内存地址,并在内存地址上修改数据)
思路:不改变原来数组即浅拷贝(拷贝内存地址里面的数据,并对拷贝出来的数据进行改变)
作业5、创建一个一维且有10个数的数组,元素是从0~1之间,但是不包含0和1;
思路:创建一个2行3列的二维数组,元素是0~1,再进行降维(需要重新复习相关知识)
作业6、求以下数组大于等于5并且小于等于10的数组
思路:先将大于等于5的数组提取出来,然后在新的数组里面提取大于等于10的元素
作业7、将一个二维数组的行和列分别进行逆向
作业8、如何找到数组中每行的最大值
思路:先将数组中的元素以行的大小进行排序,并提取出最大数所在列
作业9、如何按照行求最小值和最大值相除的结果
思路:先将数组中的元素以行的大小进行排序,再根据切片提取每行最小值和最大值,利用函数进行相除
作业10、判断两个数组是否完全相等
思路:以相同条件生成两个数组,并判断里面的元素是否相等,再利用布尔数组的函数all进行分析