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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近在写个性化推荐的论文,经常用到Python来处理数据,被pandas和numpy中的数据选取和索引问题绕的比较...
    shuhanrainbow阅读 4,616评论 6 19
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,834评论 18 399
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,790评论 0 33
  • 储子曰:王使人瞷夫子,果有以异於人乎? 孟子曰:何以异於人哉?尧舜与人同耳。 储子说:大王让人偷偷观察你,难道是你...
    济之阅读 310评论 0 0
  • 她去相亲了,一个很普通的男生,聊天竟然都会睡着。只觉得是应酬,心里寄希望于可以让自己忘记他,可是印象却越发深刻了。...
    回回小姐阅读 148评论 0 0