Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.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 np.array(或vstack)列切片如何工作?_Python_Numpy - Fatal编程技术网

Python np.array(或vstack)列切片如何工作?

Python np.array(或vstack)列切片如何工作?,python,numpy,Python,Numpy,为什么在: 第一列和第二列的结果为: 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]] 那么,为什么: 第一行t[1://code>不是[4 5 6]和 第一列t[:0]不是[1,4]和 第二列t[:1]不是

为什么在:

第一列和第二列的结果为:

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]]
那么,为什么:

  • 第一行
    t[1://code>不是
    [4 5 6]
  • 第一列
    t[:0]
    不是
    [1,4]
  • 第二列
    t[:1]
    不是
    [2,5]
  • 第二列
    t[:3]
    不是
    [3,6]
    ? 如何将其概念化

在您的代码中,
t
是一个2维阵列。在这种情况下,
t.shape
应该是
(2,3)
。第一个dim
2
用于行,第二个dim
3
用于列

请注意,每个索引应该用逗号分隔,如
t[0,1]
。这表示第一行和第二列的元素

如果只使用一个索引,如
t[1]
,numpy将其视为行的索引。所以通过
t[1,:]
可以得到相同的结果

  • 第一行t[1:]不是[4 5 6]
这可能来自一个约束,即
[0://code>和
[1://code>应该具有类似的结果。[1:]只是只选择一行的特殊情况<代码>[4 5 6]
可以作为
t[1,:]
进行切片

  • 第一列t[:0]不是[1,4]和
如上所述,当只有一个索引馈入2维数组时,该索引被视为行。空结果是因为[:0]不表示任何内容。您可以在
列表(范围(0))
中看到类似的现象

  • 第二列t[:1]不是[2,5]和
如果要获取第二列,请键入
t[:,1]

  • 第二列t[:3]不是[3,6]

->这应该是
t[;,2]

t
是2d,(2,3)。检查其
形状
。所有索引都在第一个维度(行)上。如果要选择整行或整列,请尝试
[:,1]
,[1,:]等。请重新阅读有关索引和索引的文档slices@hpaulj感谢您的评论,您的评论很有帮助,您提到缺少coma会使1d
t[1,:]
t[1:,:]
上的索引产生类似的结果,但是形状不同。@hpaulj@dkato 1)但是为什么
t[0:
生成整个二维数组而
t[1:
只生成第二行呢?2) 为什么
t[2://code>返回空列表
[]
(没有3、4、5等行)?这不应该有错误吗?
t[0://code>返回一组从0到结尾的行,作为2维数组。并且
t[1:][/code>返回从1开始到结束的行。请使用3x3数组,如
t=[1 2 3],[4 5 6],[7,8,9]]
并检查
t[1:][/code>是否生成2x3数组。@dkato感谢接受。请将此评论添加到已接受的答案中
[[1 2 3]
 [4 5 6]]