×

20170820 - 看懂到学会间应该跨越的鸿沟 - 实践

96
问之绿茶
2017.08.23 14:20* 字数 642

这是学习Python的第五堂课,这节课是关于numpy的入门知识,我的学习方式是先认真听一遍视频,然后对照视频内容动手书写一遍,最后再将课堂布置的作业完成一遍。

第一遍听老师讲的时候,按照老师的思路基本上能听懂,只是还不会运用;然后开始动手了,按照课程的提示进行操作,发现问题也不是很大。因为当我不会的时候立即看看视频,答案也就出来了。这种方式可能带来的一个不良后果是:太依赖可能,而没有认真独立思考。后期需要更正下学习套路:针对老师提出的问题,自己认真动脑思考解决之道。

好了,到了最后一步是真刀实枪的解决作业。做着做着发现虽然我的整个思路没有漏洞,可结果就是报错。例如:有一题是让我们将1-15之间的数据输出成3行5列的形式,随后再查找不同条件的数据。

我的输入:

In[]: arr = np.arange(1, 16)

In[]:  arr.shape = (3, 5)

In[]: arr

可是结果就是报错,说对“np”没有定义,只有通过度娘搜索解决之道。吼吼竟然搜到了,好开心,其实只要在上面的代码最开始输入:import numpy as np 即可。

np的运算效率比python要高,因为它的数据类型要求统一,这样电脑的运行效率要高。并且在np中很多公司可以直接用。

例如:计算将一组数据 scores = [68, 95, 88, 70, 55, 80, 90, 98 ],当数据大于等于90时,数据标识成A;当数据大于70小于90时,数据标识成B;当数据小于70时,数据标识成C。

方法一:

In[]: new = list()

In[]: for i in scores:

In[]:      if scores>=90:

                new.append('A')

In[]:      elif scores>70:

                new.append('B')

In[]:      else:

                new.append('C')

print(new)

方法二:

In[]:     arr = np.where(scores[:]>=90, 'A', np.where(scores[:]>70, 'B', 'C'))

In[]:     arr

很明显看出方法二使用的代码量要远小于方法一,这也说明np基础函数的使用比循环函数高效。

日记本
Web note ad 1