写在前面
代码中的np表示的是numpy,因为导入的时候是:import numpy as np
一、数据分析与Numpy
1、数据分析
MATLAB:专业化数据分析工具
Numpy:更简单上手,且结合了MATLAB大部分功能
2、Numpy介绍
- 应用于数值分析领域的Python语言工具
- 是一个开源的科学计算库
- 弥补了作为通用编程语言的Python在数值计算方面能力弱、速度慢的不足
- 拥有丰富的数学函数、强大的多位数组和优异的运算性能
- 与Scipy、scikit、matplotlib等其他科学计算库可以很好协调
- 可以取代matlab等工具,允许用户进行快速开发的同时完成交互式的原型设计
3、Numpy的效率
可以清楚看到,使用Numpy计算的效率是普通python语句计算的近60倍,这里使用的是微秒(10的-6次方)
4、练习代码
import datetime as dt
import numpy as np
n = 100000
start = dt.datetime.now()
A, B = [], [] # 两个空列表
for i in range(n):
A.append(i ** 2) # 计算i的平方
B.append(i ** 3) # 计算i的3次方
C = []
# 用zip拉链拉起来就可以同时遍历两个列表
for a, b in zip(A, B):
C.append(a + b)
print("直接:", (dt.datetime.now() - start).microseconds) # 输出直接用py语句来实现计算的运行时间
# 使用Numpy来实现
start = dt.datetime.now()
C = np.arange(n) ** 2 + np.arange(n) ** 3
print("Numpy:", (dt.datetime.now() - start).microseconds)
二、多维数组
1、多维数组
数组:空间上内存连续,元素同类型
Numpy中的数组:是numpy.ndarray这个类实例化来的对象,用于表示数据结构中的
任意维度的数组(ndarray表示数组名)
2、创建多维数组对象
- numpy.arange(起始,终止,步长)
- numpy.array:被解释为数组的容器
- ndarray.dtype属性:表示元素的数据类型,astype()方法可以修改元素类型(ndarray表示数组名)
- ndarray.shape属性:表示数组的维度,reshapre()方法可以改变维数,如
b = np.arange(1, 25).reshape(2, 3, 4)
- 元素索引:数组[页索引][行索引][列索引];数组[页索引,行索引,列索引]
3、练习代码
import numpy as np
a = np.arange(1,10,2)
print(a)
# 一维数组里面放入一个列表
b = np.array