繁体   English   中英

子集 2D NumPy 数组

[英]Subsetting 2D NumPy Arrays

你好,我正在学习 python 的道路上,我正在努力理解这个问题,你能帮我解决这个问题吗

打印出 np_baseball 的第 50 行。 为什么这个命令的答案是 [49, :] 从我的角度来看,如果要求第 50 个应该只是 [49] 为什么还有额外的:

将非常高兴您的回应

关于切片的 numpy 文档指出:

如果选择元组中的对象数小于 N,则假定任何后续维度为 :。

所以这两个版本实际上是一样的。

文档给出的示例是这样的:

x = np.array([[[1],[2],[3]], [[4],[5],[6]]])
x[1:2]  # array([[[4],[5],[6]]])

看起来你正在使用这course

https://github.com/datacamp/courses-introduction-to-python/blob/master/chapter4.md

并查看这段代码:

# baseball is available as a regular list of lists

# Import numpy package
import numpy as np

# Create np_baseball (2 cols)
np_baseball = np.array(baseball)

# Print out the 50th row of np_baseball
print(np_baseball[49,:])

# Select the entire second column of np_baseball: np_weight_lb
np_weight_lb = np_baseball[:,1]

# Print out height of 124th player
print(np_baseball[123, 0])

请注意,选择一列的下一行使用[:,1]表示法:

np_baseball[:,1]

这里需要':'来识别/分割第一个维度,行。 np_baseball[49,:]中,':' 做同样的事情,切割第二维。 但作为简写,不需要指定尾随尺寸,因此np_baseball[49]很好。

在编写指导性答案时,我喜欢包含尾随切片,即使代码不需要它。 我认为它使(大多数:))人类读者更清楚。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM