何时使用Python中的哪些数组实现?

何时使用Python中的哪些数组实现?,python,numpy,Python,Numpy,什么时候应该使用np.array([1,2,3])vsnp.array([1,2,3])vs[1,2,3]vs[1,2,3]?我知道使用np.array可以在数组上执行列表实现无法执行的某些操作,并且使用[[]]而不是[]可以进行转置,但是使用一个数组而不是其他数组的一般原因是什么?这是numpy与列表以及1d与2d维度的问题: np.array([1,2,3])是一个由3个元素组成的一维数组:type(np.array([1,2,3])返回和np.array([1,2,3])。shape返回

什么时候应该使用
np.array([1,2,3])
vs
np.array([1,2,3])
vs
[1,2,3]
vs
[1,2,3]
?我知道使用np.array可以在数组上执行列表实现无法执行的某些操作,并且使用
[[]]
而不是
[]
可以进行转置,但是使用一个数组而不是其他数组的一般原因是什么?

这是numpy与列表以及1d与2d维度的问题:

  • np.array([1,2,3])
    是一个由3个元素组成的一维数组:
    type(np.array([1,2,3])
    返回
    np.array([1,2,3])。shape
    返回
    (3,)
  • np.array([[1,2,3]])
    是一个具有1行3列的二维数组:
    type
    返回
    shape
    返回
    (1,3)
  • [1,2,3]
    是一个包含3个元素的一维列表:
    类型([1,2,3])
    返回
    len([1,2,3])
    返回
    3
  • [[1,2,3]]
    是一个包含1行和3列的二维列表:
    type
    返回
    len
    返回
    1
    len([[1,2,3]][0])
    返回
    3
    。请注意,
    [[1,2,3]][0]=[1,2,3]
    ,因此此2d列表的第一个元素是1d列表
您一定已经注意到列表没有
shape
属性。列表是基本的python对象,尽管它们有很多用途,但有时您需要使用
ndarray
,尤其是需要使用特定的
numpy
函数。但是,不要更改
ndarray
的所有列表,因为有些操作使用列表更方便。总之,必要时使用
ndarray
,否则使用
list


至于尺寸,这取决于你需要什么,但如果你不需要二维的东西,那就用一维吧。

一个是1D,另一个是2D?如果你发现自己问这个问题时没有清楚地理解其中的区别,那么你需要坚持1D。这意味着你很有可能真的不需要2Doperations@roganjosh昨天,OP提出了一个问题,寻求一维数组的外积,但试图使用矩阵积。你可以问“使用numpy数组的原因是什么”——这应该让你开始:
[1,2,3]
[[1,2,3]]
不是数组,而是列表。最佳答案取决于您试图对这些对象执行的操作。在这一点明确之前,我认为您需要学习如何将一种形式转换为另一种形式
np.array
从列表中生成数组
.tolist()执行相反的操作<代码>重塑
是更改数组维度的一种方法。同时学习各自的方法。列表有一组有限但非常有用的方法。数组永远不会取代列表(和/或元组)。列表对象没有维度。我认为,考虑到这个问题,这里的庸俗化比词汇表的准确性更重要