我应何时使用np.array([1,2,3])
vs np.array([[1,2,3]])
vs [1,2,3]
vs [[1,2,3]]
?我知道使用np.array可以让您对列表实现不执行的某些操作进行操作,并且使用[[]]
而非[]
可以进行转置,但是一般情况下为什么要使用另一个?
答案 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
返回1
和len([[1,2,3]][0])
返回3
。请注意,[[1,2,3]][0] = [1,2,3]
因此,此2d列表的第一个元素是1d列表。您必须已经注意到,列表没有shape
属性。列表是基本的python对象,尽管它们有很多用途,但有时您仍需要使用ndarray
,特别是您需要使用特定的numpy
函数。但是,请勿更改ndarray
的所有列表,因为某些操作对列表更方便。总之,必要时请使用ndarray
,否则请使用list
。
关于尺寸,这取决于您需要的内容,但是如果您不需要2维的东西,则继续使用1维。