1.前言
python之所以流行,原因之一是因为,python让编程变得容易。当执行python代码时,python解释器将代码转化为计算机能理解的二进制code,并执行。当我们运行Python程序时,我们不需要担心内存如何管理, 也不需要了解处理器如何执行。python将替我们处理这些事情。
python作为一门高级语言,编写Python程序会变得特别快速,因为python解释器帮我们决定如何执行程序。相反,类似C等的低级语言, 内存管理和处理器执行操作都需要你自己定义。这就意味着,使用低级语言编程将花费更多的时间和精力,但是同样的,程序的运行也更加的有效率。
语言类型 | 语言 | 书写效率 | 执行效率 |
高级语言 | Python | 高 | 低 |
低级语言 | C | 低 | 高 |
在高级语言和低级语言中选择的时候,你将面临着,是让程序书写快,还是让程序运行快。
幸运的是,有两个包:Numpy和Pandas,能同时满足要求。Numpy和pandas使用向量化,可以在不牺牲性能的情况下,快速编程数据分析程序。
正常的计算会通过for循环遍历,但是向量化使得计算同时进行。能使得计算速度成倍增加。
2. 创建一个Ndarray对象
import csv
import numpy as np
# 读取csv成list of list
f = open("nyc_taxis.csv", "r")
taxi_list = list(csv.reader(f))
# 去除header
taxi_list = taxi_list[1:]
# 转换数据类型为float
converted_taxi_list = []
for row in taxi_list:
converted_row = []
for item in row:
converted_row.append(float(item))
converted_taxi_list.append(converted_row)
# 创建ndarray对象
taxi = np.array(converted_taxi_list)
3. 元素的选取
-- shape属性
taxi.shape
-- 元素切片
taxi[row_list, column_list]
# eg
row_0 = taxi[0]
rows_391_to_500 = taxi[391:501]
row_21_column_5 = taxi[21, 5]
4. 向量计算