第四章课后习题答案《从零开始学python数据分析与数据挖掘》
import numpy as np
#exercise1
num1 = np.array([2,3,5,7])
print(num1)
#exercise2
num2 = np.array([1,12,11,17,13,18,12,14])
print(num2[np.fmod(num2,2) == 0])
print(num2[num2 % 2 == 0])
#exercise3
num3 = np.array([[1,12,11,17],[13,18,12,14],[8,11,14,10],[6,8,9,22]])
print(num3[2,:])
print(num3[:,1])
#exercise4 计算数组每行的和
num4 = num3
print(np.sum(num4,axis = 1))
#exercise6 将5*3的矩阵和3*2的矩阵相乘
num5_1 = np.random.rand(5,3)
num5_2 = np.random.rand(3,2)
print(num5_1,num5_2)
print(np.dot(num5_1,num5_2))
#exercise7 将矩阵num4转化为8*2的矩阵
print(np.resize(num4,(8,2)))
#exercise8 水平堆叠,因为它们俩的行数是一样的
a = np.arange(0,10).reshape(2,-1)
b = np.repeat(1,10).reshape(2,-1)
print(np.hstack((a,b)))
#exercise9 元素的排重 其实这个问题在chapter3中写过一种方法现在我们再使用一种不同的方法进行排重
num_9 = np.array([1,2,3,2,3,4,3,4,5,6])
print(np.unique(num_9))
#exercise10,首先计算余数为0的位置然后将其填为-1,奇数则填原值
num_10 = num3
print(np.where(num_10 % 2 ==0,-1,num_10))
#exercise11
A = np.array([[1,1],[2,3]])
b = np.array([7,18])
beta = np.linalg.solve(A, b)
#12 如何根据已知的自变量x,y计算出多元线性回归模型的系数
#首先根据回归的1方程写出A和b,然后使用numpy.linalg.lstsp(A,B)方法根据最小二乘计算出beta
#13
num12 = np.random.randint(0,10,size = 10)
print(num2)
print(np.where(num12 == np.max(num12),0,num12))
#14
def game(money , counts):
i = 1
while i <= counts:
i = i + 1
p = np.random.uniform(0,1)
if p <= 0.5 :
money = money + 8
else :
money = money -8
if money < 0:
print('对不起您的余额不足请充值!')
return money
print('经过{}次的游戏,您还剩余{}元'.format(counts,money))
money = 1000
money = game(money,1000)
本章重点内容汇总:
我感觉这里面函数用的比较多的就是堆叠函数的使用,还有一些函数我在这里没有列举出来,像where函数,和if的使用方法有一些相同之处,但是还有一些其他的用途,大家可以自己多去尝试使用一下这些函数,做到熟悉掌握以后写代码的时候就会很快了。