numpy-P[(n),(m)]和P[[n],[m]]之间的指数行为差异 问题:
numpy-P[(n),(m)]和P[[n],[m]]之间的指数行为差异 问题:,numpy,Numpy,p[(n)、(m)]和p[[n],[m]]之间有什么区别?我原以为它们都选择一个元素,因此是标量,但()和[]会产生不同的形状。用于()的标量和用于[]的数组 这背后的设计决策和想法是什么 import numpy as np a = np.array(1).reshape(1, -1) print(a) --- [[1]] b = a[ (0), (0) ] print(b) print(b.shape) print(b.ndim) --- 1 () 0 c = a[
p[(n)、(m)]
和p[[n],[m]]
之间有什么区别?我原以为它们都选择一个元素,因此是标量,但()
和[]
会产生不同的形状。用于()
的标量和用于[]
的数组
这背后的设计决策和想法是什么
import numpy as np
a = np.array(1).reshape(1, -1)
print(a)
---
[[1]]
b = a[
(0),
(0)
]
print(b)
print(b.shape)
print(b.ndim)
---
1
()
0
c = a[
[0],
[0]
]
print(c)
print(c.shape)
print(c.ndim)
---
[1]
(1,)
1
这是因为要创建仅包含一个元素的元组,需要添加逗号
b=a[(0,),(0,)]
返回的结果与c=a[[0],[0]]
相同
您可以尝试以下方法:
print(type((0)))
print(type((0,)))
输出:
<class 'int'>
<class 'tuple'>
如果只想选择一个元素,只需执行
a[0,0]
numpy
就可以区分索引外层的元组和列表,即a[(0,1)]
不同于a[[0,1]]
。但是a[[0],[1]]
和a[(0,),(1,)]
没有区别。请注意我使用的逗号。