美文网首页
2020-06-19 暑期学习日更计划(numpy100题+概率

2020-06-19 暑期学习日更计划(numpy100题+概率

作者: Reza_ | 来源:发表于2020-06-18 23:46 被阅读0次

numpy100题 27-46题

  1. Consider an integer vector Z, which of these expressions are legal? (★☆☆)
'''
Z**Z        True
2 << Z >> 2 True #结果存疑
Z <- Z      True #返回一个bool数组
1j*Z        True #1j复数
Z/1/1       True
Z<Z>Z       True #结果存疑
'''
  1. What are the result of the following expressions?
1.  np.array(0) / np.array(0)     
2.  np.array(0) // np.array(0)
3.  np.array([np.nan]).astype(int).astype(float)

1. np.nan   
2. 0
3. array([-2.14748365e+09])
  1. How to round away from zero a float array ? (★☆☆)
array_29=np.random.random(5)+2
array_29_ard=np.around(array_29,decimals=1)
print(array_29)
print(array_29_ard)
#np.around函数:四舍五入保留小数位数,decimals=要保留小数点后几位,default=0
  1. How to find common values between two arrays? (★☆☆)
array_30_1=np.array([1,2,3,4,5])
array_30_2=np.array([2,4,6,8,10])
cv=np.intersect1d(array_30_1,array_30_2)
print(cv) 
#np.intersect1d()  求两个数组的交集
  1. How to ignore all numpy warnings (not recommended)? (★☆☆)
#解法1
default=np.seterr(all='ignore')
array_31=np.array([1])/0 #不报错

_=np.seterr(**default) #返回会报错的默认状态
array_31=np.array([1])/0 #报错
#解法2

with np.errstate(divide='ignore'):
    #array_31_2=np.array([1])/0 #不报错
  1. Is the following expressions true? (★☆☆)
print(np.sqrt(-1))                      #nan
print(np.emath.sqrt(-1))           #1j可以计算虚数
print(np.sqrt(-1) == np.emath.sqrt(-1)) #False

  1. How to get the dates of yesterday, today and tomorrow? (★☆☆)
yesterday_33=np.datetime64('today','D')-np.timedelta64(1,'D')
today_33=np.datetime64('today','D')
tomorrow_33=np.datetime64('today','D')+np.timedelta64(1,'D')
# datetime64 代表具体日期
# timedelta64 代表一段时间
print(yesterday_33)
print(today_33)
print(tomorrow_33)
  1. How to get all the dates corresponding to the month of July 2016? (★★☆)
gap_34=np.arange('2016-06-01',
                 '2016-07-01',
                 dtype=np.datetime64)
print(gap_34)
  1. How to compute ((A+B)*(-A/2)) in place (without coy)? (★★☆)
    解法1:
A_35=np.arange(9).reshape(3,3)
B_35=np.ones((3,3))

res=(A_35+B_35)*(-A_35/2)
print(res) #35.1

解法2

A_35_2=np.arange(9,dtype='float').reshape(3,3)
B_35_2=np.ones((3,3))

np.add(A_35_2,B_35_2,out=B_35_2)
np.divide(A_35_2,2,out=A_35_2)
np.negative(A_35_2,out=A_35_2)
np.multiply(A_35_2,B_35_2,out=A_35_2)
print(A_35_2)
  1. Extract the integer part of a random array of positive numbers using 4 different methods (★★☆)
int_36=np.random.random(5)*10
print(int_36)
print(np.floor(int_36)) #36.1 向下取整
print(np.ceil(int_36))#36.2 向上取整
print(np.trunc(int_36))#36.3 截取整数
print(int_36//1) #36.4
print(int_36-int_36%1)#36.5
print(int_36.astype(int))#36.6强制取整
  1. Create a 5x5 matrix with row values ranging from 0 to 4 (★★☆)
mat_37=np.zeros((5,5)) #shape=(5,5)
mat_37=mat_37+np.arange(5) #shape=(5,)
print(mat_37) 
#
  1. Consider a generator function that generates 10 integers and use it to build an array (★☆☆)
    解法一:
iterable_38=(x*x for x in range(10)) #可迭代对象
list_10=list(range(10))
print(list_10)
print(np.fromiter(list_10, np.float))
print(np.fromiter(iterable_38, np.float)) #利用可迭代对象生成一个数组

解法二:

def fun_38():
    for i in range(10):
        yield i
print(np.fromiter(fun_38(),np.float)) #38.2
  1. Create a vector of size 10 with values ranging from 0 to 1, both excluded (★★☆)
vector_39=np.linspace(0,1,11,endpoint=False)[1:]
print(vector_39)

  1. Create a random vector of size 10 and sort it (★★☆)
vector_40=np.random.random(10)*10
vector_40=np.sort(vector_40)
print(vector_40) 
  1. How to sum a small array faster than np.sum? (★★☆)
array_41=np.arange(5)
print(np.add.reduce(array_41)) 

#小数组计算比np.sum更快

  1. Consider two random array A and B, check if they are equal (★★☆)
A_42=np.random.random((3,3))
B_42=np.random.random((3,3))
print(A_42 is B_42)               False
print(np.allclose(A_42,B_42))     False
print(np.array_equal(A_42,B_42))  False #42.
  1. Make an array immutable (read-only) (★★☆)
array_43=np.arange(5)
array_43.flags.writeable=False #read-only
array_43[0]=1
#ValueError: assignment destination is read-only
  1. Consider a random 10x2 matrix representing cartesian coordinates, convert them to polar coordinates (★★☆)

解法1

mat_44=np.random.random((10,2))
for row in mat_44:
    # print(row)
    # print(row**2)
    p=np.sqrt((row**2)[0]+(row**2)[1])
    sida=np.arctan(row[0]/row[1])#正切值(-pi/2,pi/2)
    print(p,sida)

解法2

mat_44=np.random.random((10,2))
X_44,Y_44=mat_44[:,0],mat_44[:,1]
p=np.sqrt(X_44**2+Y_44**2)
sida=np.arctan2(X_44,Y_44)#对边,直角边,(-pi,pi)
print(p,sida)
  1. Create random vector of size 10 and replace the maximum value by 0 (★★☆)
vector_45=np.random.random(10)*10
arg_45=np.argmax(vector_45)
vector_45[arg_45]=0
print(vector_45)
  1. Create a structured array with x and y coordinates covering the [0,1]x[0,1] area (★★☆)
array_46=np.zeros((5,5),dtype=[('x','f4'),('y','f4')])
array_46['x'],array_46['y']=np.meshgrid(np.linspace(0,1,5),
                                        np.linspace(0,1,5))
print(array_46)

np.meshgrid()函数
根据传入的两个一维数组参数生成两个数组元素的列表,常常用于生成点阵

a=np.arange(5)
#array([0, 1, 2, 3, 4])
b=np.arange(2)
#array([0,1])
A,B=np.meshgrid(a,b)
print(A)
#array([[0, 1, 2, 3, 4],
#         [0, 1, 2, 3, 4]])
print(B)
#array([[0, 0, 0, 0, 0],
#         [1, 1, 1, 1, 1]])
#A,B生成了shape=(5,2)的数组
  1. Given two arrays, X and Y, construct the Cauchy matrix C (Cij =1/(xi - yj))
X_46=np.arange(2,6)
Y_46=np.ones(5)
Cauchy_mat=1/(X_46[:,np.newaxis]-Y_46)
print(Cauchy_mat)

概率论部分

1.二维连续随机变量,概率密度,边缘分布,条件分布,独立性
2.常见的二维连续分布,均匀分布,正态分布
3.多维随机变量的分布...
这部分内容真抽象,难以理解

相关文章

  • 50道练习带你玩转Pandas

    受到numpy100题的启发,我们制作了pandas50题。 Pandas 是基于 NumPy 的一种数据处理工具...

  • 【日更91】暑期学习

    儿子早晨7点多起床。7:30不到出门。今天上了数学物理。数学把期末试卷订正了一下讲了圆,物理复习了杠杆。我看到他的...

  • 暑期学习计划

    一考完试,孩子们都欢呼雀跃,终于放假了!安静下来还得好好制定一下假期学习生活计划,好习惯可不能放假。 ...

  • 2019 暑期成长计划学习心得

    2019 暑期成长计划学习心得 我非常高兴地参加了2019年暑期成长计划的学习,在学习中,不仅认真观看了名师的讲课...

  • 统计概率学习计划

    今年的1月19日,我加入了猴子的大数据学习群,并且写了学习计划,截止到今天为止,已经过了5关,加入了新的统计概率学...

  • C++、Python、编程题、智商题等10个方向的面试常考题型总

    目录PythonC++智商题大数据计算机基础概率题HR常问问题开放题机器学习编程题PhythonPython的元组...

  • 暑期学习计划2018

    暑期学习计划(2018.7.1-8.31) 明确目标,详细计划,立刻行动,修正行动,坚持到底!!!玩中学,做中学!...

  • 暑期英语学习计划

    学习计划 学员姓名: 学员年龄:5年级 学员成绩:C 学习时长:每天1小时,共30天,共计30学时 学员目标: 1...

  • 2016暑期学习计划

    任务: 1.linux能使用命令行配置开发环境 2.html,css,js的学习 3.学计算机怎么能不懂网络?!暑...

  • 2020暑期学习计划

    经历了漫长的寒假,迎来了新形式的线上网课,终于盼来了复学的日子,可是刚上了2周多,就又到了放暑假的日子,娃们的...

网友评论

      本文标题:2020-06-19 暑期学习日更计划(numpy100题+概率

      本文链接:https://www.haomeiwen.com/subject/rsdixktx.html