为什么numpy数组中需要两个方括号?

时间:2018-03-13 15:45:10

标签: python-3.x numpy

我正在学习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])

如果这个问题重复,我道歉,但我找不到任何答案。

非常感谢

2 个答案:

答案 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]),但这样做几乎没有任何意义。