Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 单支架Numpy阵列和双支架Numpy阵列之间的区别?_Python_Numpy - Fatal编程技术网

Python 单支架Numpy阵列和双支架Numpy阵列之间的区别?

Python 单支架Numpy阵列和双支架Numpy阵列之间的区别?,python,numpy,Python,Numpy,这两个numpy对象之间有什么区别 import numpy as np np.array([[0,0,0,0]]) np.array([0,0,0,0]) 当您定义一个带有两个方括号的数组时,您真正要做的是声明一个包含4个0的数组。因此,如果您想访问第一个零,您将访问 您的_数组[0][0]而在第二个数组中,您只需访问您的数组[0]。也许一个更好的可视化方法是 array: [ [0,0,0,0], ] vs 前者是一个1 x 4的二维数组,后者是一个4元素的一维数组。单括号和双括号的区别

这两个numpy对象之间有什么区别

import numpy as np
np.array([[0,0,0,0]])
np.array([0,0,0,0])

当您定义一个带有两个方括号的数组时,您真正要做的是声明一个包含4个0的数组。因此,如果您想访问第一个零,您将访问
您的_数组[0][0]
而在第二个数组中,您只需访问
您的数组[0]
。也许一个更好的可视化方法是

array: [
[0,0,0,0],
]
vs


前者是一个1 x 4的二维数组,后者是一个4元素的一维数组。

单括号和双括号的区别从列表开始:

In [91]: ll=[0,1,2]
In [92]: ll1=[[0,1,2]]
In [93]: len(ll)
Out[93]: 3
In [94]: len(ll1)
Out[94]: 1
In [95]: len(ll1[0])
Out[95]: 3
ll
是一个包含3项的列表
ll1
是一个包含1项的列表;那个项目是另一个列表。请记住,列表可以包含各种不同的对象、数字、字符串、其他列表等

这两个表达式有效地从两个这样的列表中生成数组

In [96]: np.array(ll)
Out[96]: array([0, 1, 2])
In [97]: _.shape
Out[97]: (3,)
In [98]: np.array(ll1)
Out[98]: array([[0, 1, 2]])
In [99]: _.shape
Out[99]: (1, 3)
此处列表列表已转换为二维数组。以一种微妙的方式
numpy
模糊了列表和嵌套列表之间的区别,因为两个数组之间的区别在于它们的形状,而不是基本结构
array(ll)[None,:]
生成
(1,3)
版本,而
array(ll1).ravel()生成
(3,)
版本


最终的结果是,单括号和双括号之间的区别在于数组维度的数量不同,但我们不应该忽视Python首先创建不同列表的事实。

维度。看看今天早些时候的类似问题:对于
np.array
,最好使用
x[0,0]进行索引
numpy
数组比嵌套列表具有更强大的索引方法。没错,但对于提出此类问题的人,我认为这可能是一种更简单的解释方法,符号(4,)是什么意思?4行和未定义的列数?为什么第二个操作的结果不是(,4)?
shape
属性返回一个标准的python
tuple
,其中数字是每个维度的元素数。因此,
(4,)
是一个标准的1元素python
元组,元素的值为
4
<代码>(,4)
不是有效的元组。我不确定,但(4,)并不意味着只有4行和一列,即,它是一维数组?(1,4)的第二个输出将意味着1行4列,因此不应该表示输出有4个维度,因为它有4列?后者
(4,)
数组没有任何“列”,因为它是1d。有列意味着它是2d。@匿名用户
ll1
它仍然是一个只有1项的列表(但该项是3项的列表)
In [91]: ll=[0,1,2]
In [92]: ll1=[[0,1,2]]
In [93]: len(ll)
Out[93]: 3
In [94]: len(ll1)
Out[94]: 1
In [95]: len(ll1[0])
Out[95]: 3
In [96]: np.array(ll)
Out[96]: array([0, 1, 2])
In [97]: _.shape
Out[97]: (3,)
In [98]: np.array(ll1)
Out[98]: array([[0, 1, 2]])
In [99]: _.shape
Out[99]: (1, 3)