numpy ndarray array,python中numpy.ndarray
Numpy数组由许多值组成,所有值都属于同一类型。Numpy是Python科学计算的核心模块。本文重点介绍Python大数据NumpyArray的相关知识。感兴趣的朋友来看看吧。
00-1010 1.内存占用少2。更快,内置计算方法Numpy是Python科学计算的核心模块。它提供了非常有效的数组对象和工具来处理这些数组对象。Numpy数组由许多值组成,所有值都属于同一类型。
Python的核心库提供了一个List列表。List是最常见的Python数据类型之一。可以调整大小,包含不同类型的元素,非常方便。
那么List和Numpy数组有什么区别呢?大数据处理为什么需要使用Numpy数组?答案是性能。
Numpy数据结构在以下几个方面表现更好:
1.内存大小—Numpy数据结构占用较少的内存。
2.性能—Numpy底层用C语言实现,比list快。
3.运算方法—代数运算和其他方法的内置优化。
大数据处理中Numpy数组相对于List的优势解释如下。
目录
适当地使用Numpy数组代替List,可以将内存占用减少20倍。
对于Python的原生List list,每增加一个对象,引用新对象需要8个字节,新对象本身占用28个字节(以integer为例)。所以list list的大小可以通过下面的公式来计算:
68 * len (lst) len (lst) * 28字节
有了Numpy,可以减少很多空间。例如,长度为n的Numpy形数组,它需要:
9len (a) * 8字节
可以看出,数组越大,节省的内存空间越多。假设您的数组有10亿个元素,内存大小的差异将是GB。
1.内存占用更小
运行下面的脚本,同样生成两个某个维度的数组,并将它们相加,可以看到native List和Numpy Array的性能差距。
导入时间
将numpy作为np导入
vec的大小=1000
def pure_python_version():
t1=time.time()
X=范围(vec的大小)
Y=范围(vec的大小)
z=[X[I]Y[I]for I in range(len(X))]
返回时间. time() - t1
def numpy_version():
t1=time.time()
X=np.arange(size_of_vec)
Y=np.arange(size_of_vec)
Z=X Y
返回时间. time() - t1
t1=纯python版本()
t2=numpy_version()
打印(t1,t2)
print(Numpy在本例中是 str(t1/T2) fast!)
结果如下:
0.00048732757568359375 0.0002491474151611328
Numpy在这个例子中快了1.958861244019!
可以看到,Numpy比native array快1.95倍。
仔细的话还可以发现Numpy数组可以直接进行加法运算。原生数组做不到这一点,这是Numpy算法的优势。
让我们做几次重复测试,证明这种性能优势是永久的。
将numpy作为np导入
从timeit导入计时器
vec的大小=1000
X_list=range(size_of_vec)
Y_list=range(size_of_vec)
X=np.arange(size_of_vec)
Y=np.arange(size_of_vec)
def pure_python_version():
z=[X _ list[I]Y _ list[I]for I in range(len(X _ list))]
def numpy_version():
Z=X Y
Timer _ obj 1=Timer( pure _ python _ version(),
从_ _ main _ _ import pure _ python _ version’)
Timer _ obj 2=Timer( numpy _ version(),
从_ _ main _ _ import numpy _ version’)
print(timer_obj1.timeit(10))
print(timer_obj2.timeit(10)) #运行速度更快!
print(timer _ obj 1 . repeat(repeat=3,number=10))
print(timer _ obj 2 . repeat(repeat=3,number=10)) #重复证明!
结果如下:
0.0029753120616078377
0.00014940369874238968
[0.002683573868125677, 0.002754641231149435, 0.002803879790008068]
[6.536301225423813e-05,2.9387418180704117e-05,2.917351343393326 e-05]
如你所见,第二次输出的时间总是短得多,这证明了这种性能优势是持久的。
所以,如果你在做一些大数据的研究,比如金融数据,股票数据,使用Numpy可以为你节省大量的内存空间,有更强大的性能。
关于Python大数据为什么一定要用Numpy数组的这篇文章到此为止。关于Python大数据Numpy数组的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望你以后能支持热门的IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。