我正在学习python,最近我遇到了一个模块Numpy。在Numpy的帮助下,可以将列表转换为数组并更快地执行操作。 假设我们创建一个包含以下值的数组:
import numpy as np
np_array=array([1,2,3,4,5])
如果我们需要以数组的形式存储一个列表,那么我们需要一个方括号。现在,如果我想创建一个2D数组,为什么它应该像这样定义:
np_array=array([[1,2,3,4,5],[6,7,8,9,10]])
而不是这样:
np_array=array([1,2,3,4,5],[6,7,8,9,10])
如果这个问题重复,我道歉,但我找不到任何答案。
非常感谢
答案 0 :(得分:3)
数组函数具有以下形式。
array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0)
如果您使用
np_array=array([1,2,3,4,5],[6,7,8,9,10])
函数调用将导致[1,2,3,4,5]传递给对象和[6,7,8,9,10]传递给 dtype ,这没什么意义。
答案 1 :(得分:2)
这实际上与numpy
没什么关系。您基本上是在询问foo(a, b)
和foo([a, b])
之间的区别。
arbitrary_function([1, 2, 3, 4, 5], [6, 7, 8, 9, 10])
将两个列表作为单独的参数传递给arbitrary_function
(一个参数为[1, 2, 3, 4, 5]
,第二个参数为[6, 7, 8, 9, 10]
)。
arbitrary_function([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
将列表清单([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
)传递给arbitrary_function
。
现在,numpy
创作者可以选择允许arbitrary_function([1, 2, 3, 4, 5], [6, 7, 8, 9, 10])
,但这样做几乎没有任何意义。