【问题标题】:what the differences between ndarray and list in python?python中的ndarray和list有什么区别?
【发布时间】:2021-07-24 07:11:13
【问题描述】:

上周老师问我们:在存储1到100的整数时,使用list和使用ndarray有什么区别。我以前从未使用过 numpy,所以我在网站上搜索了这个问题。 但是我所有的搜索结果都告诉我,它们只是有尺寸差异。 Ndarray 可以存储 N 维数据,而 list 存储一个。那不满足我。是不是真的很简单,只是我想多了,还是没有找到合适的关键字来搜索? 我需要帮助。

【问题讨论】:

    标签: python list numpy numpy-ndarray


    【解决方案1】:

    有几个区别:

    -您可以将元素附加到列表中,但不能在不制作完整副本的情况下更改“numpy.ndarray”的大小。

    -列表可以包含所有内容,在 numpy 数组中,所有元素必须具有相同的类型。

    -在实践中,numpy 数组对于矢量函数比映射函数到列表更快。

    -我认为修改时间不是问题,但对元素的迭代才是问题。 Numpy 数组有许多与数组相关的方法('argmin'、'min'、'sort' 等)。

    当我需要做一些数学运算(求和、平均、数组乘法等)时,我更喜欢使用 numpy 数组,而当我需要迭代“项目”(字符串、文件等)时,我更喜欢使用列表。

    【讨论】:

      【解决方案2】:

      一维数组就像一个行方格纸。##

      你可以在每个盒子里放一个东西

      下图是一个二维数组的例子

      二维数组有行有列

      我应该更改数字。
      当我画图的时候,我只是把第一行复制了很多次。
      每行的数字可以完全不同。

      import numpy as np
      
      lol = [[1, 2, 3], [4, 5, 6]]
      # `lol` is a list of lists
      
      arr_har = np.array(lol, np.int32)
      
      print(type(arr_har)) # <class 'numpy.ndarray'>
      
      print("BEFORE:")
      print(arr_har)
      
      # change the value in row 0 and column 2.
      arr_har[0][2] = 999
      
      print("\n\nAFTER arr_har[0][2] = 999:")
      print(arr_har)
      
      

      下图是一个3维数组的例子

      总结/结论:

      Python 中的list 就像一个一维数组。

      ndarray是“n维数组”或“多维数组”的缩写

      Python list 和 ndarray 之间的区别在于,ndarray 有 2 个或更多维度

      【讨论】:

      • 对不起,我的英语很差,让我的问题变得混乱。我的意思是我在互联网上搜索这个问题,只发现这个差异,就像你的答案一样。我尝试找到其他差异,就像这个问题中的其他答案所说的那样。还是谢谢!
      猜你喜欢
      • 2011-05-04
      • 2012-09-26
      • 2020-08-20
      • 2022-01-14
      • 1970-01-01
      • 2011-04-07
      • 2014-07-20
      • 2020-08-19
      相关资源
      最近更新 更多