mgi*_*son 29
一般来说:
foo[somestuff]
Run Code Online (Sandbox Code Playgroud)
叫或__getitem__,或__setitem__.(有也是__getslice__和__setslice__,但这些都是现在已经过时,所以我们不要谈论这个).现在,如果somestuff有一个逗号,python将传递tuple给底层函数:
foo[1,2] # passes a tuple
Run Code Online (Sandbox Code Playgroud)
如果有:,python将传递一个切片:
foo[:] # passes `slice(None, None, None)`
foo[1:2] # passes `slice(1, 2, None)`
foo[1:2:3] # passes `slice(1, 2, 3)
foo[1::3] # passes `slice(1, None, 3)
Run Code Online (Sandbox Code Playgroud)
希望你明白了.现在如果有逗号和冒号,python将传递一个包含切片的元组.在你的例子中:
foo[:, 1] # passes the tuple `(slice(None, None, None), 1)`
Run Code Online (Sandbox Code Playgroud)
object(foo)对输入的作用完全取决于对象.
qar*_*tal 16
让我们假设list是一个2D(numpy)数组,如下所示:
[[1,2,3],
[4,5,6],
[7,8,9]]
list[1,1] --> 5 # it says select the element in position [1,1] (note that indexes start from zero)
list[:,1] --> [2,5,8]
list[1][1] --> 5
list[:][1] --> [4 5 6]
Run Code Online (Sandbox Code Playgroud)
见这为进一步的例子.
小智 6
从某种意义上说,逗号分隔了您尝试从中选择的数组的不同维度。
假设我有一个二维数组
my_array = numpy.array([[1,2,3],
[4,5,6],
[7,8,9]])
Run Code Online (Sandbox Code Playgroud)
我可以通过这样做选择行(0 和 1)和列(1 和 2):
# rows | cols
print(my_array[0:2, 1:3]) # prints [[2 3]
[5 6]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14531 次 |
| 最近记录: |