为什么在:
import numpy as np
a = [1, 2 ,3]
b = [4, 5, 6]
t= np.array(([a,b])
print(t[1:])
print(t[:0])
print(t[:1])
print(t[:2])
第一列和第二列的结果是:
[[4 5 6]]
[]
[[1 2 3]]
[[1 2 3]
[4 5 6]]
如果数组是:
[[1 2 3]
[4 5 6]]
为什么然后:
t[1:]
不是[4 5 6]
和t[:0]
不是[1, 4]
和t[:1]
不是[2, 5]
和t[:3]
不是[3, 6]
?
如何概念化这个?答案 0 :(得分:1)
在您的代码中,t
是一个2-dim数组。在这种情况下,t.shape
应为(2, 3)
。第一个dim 2
用于行,第二个dim 3
用于列。
请注意,每个索引应以逗号,
分隔,例如t[0, 1]
。这表示第一行和第二列的元素。
如果只使用一个索引,例如t[1]
,numpy会将其视为行的索引。因此,t[1, :]
会得到相同的结果。
- 第一行t [1:]不是[4 5 6]
这可能来自[0:]
和[1:]
应具有类似结果的约束。 [1:]只是一种特殊情况,只选择了一行。 [4 5 6]
可以t[1 ,:]
切片。
- 第一列t [:0]不是[1,4]和
如上所述,当只有一个索引被送入2-dim数组时,索引将被视为行。空结果是因为[:0]表示什么都没有。您可以使用list(range(0))
看到类似的现象。
- 第二列t [:1]不是[2,5]和
如果您想获得第二列,请输入t[:, 1]
- >这应该是t[;, 2]