何时在Python中使用哪种数组实现?

时间:2019-09-17 19:08:05

标签: python numpy

我应何时使用np.array([1,2,3]) vs np.array([[1,2,3]]) vs [1,2,3] vs [[1,2,3]]?我知道使用np.array可以让您对列表实现不执行的某些操作进行操作,并且使用[[]]而非[]可以进行转置,但是一般情况下为什么要使用另一个?

1 个答案:

答案 0 :(得分:0)

这是numpy vs列表以及1d vs 2d尺寸的问题:

  • np.array([1,2,3])是包含3个元素的一维ndarray:type(np.array([1,2,3]))返回<class 'numpy.ndarray'>,而np.array([1,2,3]).shape返回(3,)
  • np.array([[1,2,3]])是具有1行3列的二维ndarray:type返回<class 'numpy.ndarray'>,而shape返回(1,3)
  • [1,2,3]是包含3个元素的一维列表:type([1,2,3])返回<class 'list'>,而len([1,2,3])返回3
  • [[1,2,3]]是具有1行3列的二维列表:type返回<class 'list'>len返回1len([[1,2,3]][0])返回3。请注意,[[1,2,3]][0] = [1,2,3]因此,此2d列表的第一个元素是1d列表。

您必须已经注意到,列表没有shape属性。列表是基本的python对象,尽管它们有很多用途,但有时您仍需要使用ndarray,特别是您需要使用特定的numpy函数。但是,请勿更改ndarray的所有列表,因为某些操作对列表更方便。总之,必要时请使用ndarray,否则请使用list

关于尺寸,这取决于您需要的内容,但是如果您不需要2维的东西,则继续使用1维。