numpy ndarray array,python中numpy.ndarray

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: