详解python数组中的符号...与:符号的不同之处

不知道大家有没有见过在python数组中使用...符号,因为前段时间读别人代码的时候遇到了这个符号立刻就云里雾里,于是这里特此记录一下。先来看一段代码:

import numpy as np

x = np.array([[1, 3],
       [5, 6],
       [8, 10]])

print("使用'...'符号的结果为:")
print(x[..., 0])
print("使用':'符号的结果为:")
print(x[:, 0])
"""
使用'...'符号的结果为:
[1 5 8]
使用':'符号的结果为:
[1 5 8]
"""

对比结果不难发现,可以得到结论在python数组中,...符号的功能等同于:符号。然而事实真的是这样吗?答案是否定的,我们再看一下三维数组的情况。

import numpy as np

x = np.array([[[0, 1],
        [2, 3]],
       [[4, 5],
        [5, 6]],
       [[7, 8],
        [9, 10]]])
      
print("使用'...'符号的结果为:")
print(x[..., 0])
print("使用两个':'符号的结果为:")
print(x[:, :, 1])
print("使用一个':'符号的结果为:")
print(x[:, 1])
"""
使用'...'符号的结果为:
[[0 2]
 [4 5]
 [7 9]]
使用两个':'符号的结果为:
[[ 1 3]
 [ 5 6]
 [ 8 10]]
使用一个':'符号的结果为:
[[ 2 3]
 [ 5 6]
 [ 9 10]]
 """

我们可以看到,使用符号...的结果与使用两个:符号的结果一致,但是与使用单个:符号的结果有出入。因此我们可以得到,符号...并不完全等同于符号:。

结论:对于二维数组,符号...等同于符号:,但是对于三维数组则不等于,要考虑具体的情况。

到此这篇关于详解python数组中的符号...与:符号的不同之处的文章就介绍到这了,更多相关python数组符号内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的