这是学习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基础函数的使用比循环函数高效。