这样学 2 天搞定 NumPy !
三步加星标
import numpy as np
a = np.arange(8).reshape(2,4)
a
array([[0, 1, 2, 3],
[4, 5, 6, 7]])
# 计算占用占用的字节数
a.size * a.itemsize
64
数据分析工作,NumPy二维数组用的多;数据挖掘的话,高维数组用的就会更多,NumPy的强项正在于此,正所谓Python没有的NumPy有,Python有的NumPy更强。如下,创建同样shape的随机数组,Python要比NumPy慢232倍:
In[5]: %timeit np.random.randint(1,1000,(100,1000))
332 µs ± 2.39 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
]
In[6]: import random
In[6]: %timeit [random.randint(1,100) for _ in range(100) for _ in range(1000)]
77.2 ms ± 315 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
# 创建同样的(100,1000)的随机数组
# Python原生是NumPy计算耗时的232倍
In[7]: 77.2 * 1000 / 332
232.53012048192772
NumPy 闪电处理速度,主要得益于操作直接发生在元素级,而 Python 会创建更多其他额外对象,数据处理性能上无法与NumPy相媲美。
正无穷在NumPy中是 np.inf,空值是 np.nan ,它们都是一个类对象。
更多知识,比如数据类型 int63, float32,...,astype类型转化,reshape函数,数组扁平操作ravel, flatten,切片和索引,按照向量的加减乘除,统计函数,等等
这本《NumPy 100页精华》PDF,拿出两三天时间,敲一遍,基本就算掌握NumPy了,需要的微信我,备注:精华
评论