Numpy的基础入门总结1
-
nmupy的介绍
num ----- numerical 数值化的
py ------- python
其中ndarray是numpy中非常重要的对象
n ----- 任意
d ----- 维度
array ----- 数组 -
为什么使用Numpy
numpy运算效率更加快捷
ndarray的优势:
1.储存风格
ndarray -相同类型,因此是连续储存的 -通用性不强
list - 不同类型 - 通用性很强
2.并行化运算
ndarray 支持向量化(并行化)运算
3.底层语言
numpy底层使用C语言编写,内部解除了GIL(全局解释器锁),对数组运算效率不受Python解释器限制。 -
生成数组的方法
1).生成0、1的数组:np.zeros()、np.ones()
2).从现有的数组生成:
np.array()、np.copy() 深拷贝
np.asarray() 浅拷贝
三者的区别是,浅拷贝,当现有的数组发现数值的改变时,该数组也会发生改变,而深拷贝不会。
3).生成固定范围的数组
np.linspace(0,10,100) 从[0,10] 等距离 生成100个,注意0和10两者都是闭包
np.arange(a,b,c) [a,b) c 步长,注意左闭右开1。
4).生成随机数组
生成满足均匀分布的随机数组:
np.random.uniform(low,hige,size)
生成满足正态分布的随机数组:
np.random.normal(β,σ,size)
知道了怎么生成数组,可以验证numpy运算效率的快捷性:
import random
import time
list = []",
for i in range(100000000):
list.append(random.random())
ndarry = np.array(list)
#原生求和时间
t1 = time.time()
a = sum(list)
t2 = time.time()
d1 = t2-t1
#ndarray求和时间
t3 = time.time()
b = np.sum(ndarry)
t4 = time.time()
d2 = t3-t4
数量越多时,效率差距会更大。
- 形状修改
ndarray.reshape(shape) 返回新的ndarray,原始数据没有修改
ndarray.resize(shape) 无返回值,对原始的ndarray进行修改
ndarray.T 转置矩阵 - 数据类型的修改:
ndarray.astype(type)
ndarray序列化到本地
ndarray.tostring() - 数组的去重:
set() 利用集合的特性去重
np.unique(ndarray)
关于numpy的应用还需自己练习!