gpt4 book ai didi

python - 使用冒号的 Numpy 数组切片

转载 作者:行者123 更新时间:2023-11-28 19:39:12 24 4
gpt4 key购买 nike

我正在尝试学习 numpy 数组切片。

但这是我似乎无法理解的语法。

什么是

a[:1] 做。

我用 python 运行它。

a = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16])
a = a.reshape(2,2,2,2)
a[:1]

输出:

array([[[ 5,  6],
[ 7, 8]],

[[13, 14],
[15, 16]]])

有人可以向我解释切片及其工作原理吗?文档似乎没有回答这个问题。

另一个问题是是否有一种方法可以使用类似

的方法生成数组

np.array(1:16) 或类似 python 的地方

x = [x for x in range(16)]

最佳答案

切片中的逗号用于分隔您可能拥有的各种维度。在您的第一个示例中,您将数据 reshape 为具有 4 个维度,每个维度的长度为 2。这可能有点难以可视化,因此如果您从 2D 结构开始,它可能更有意义:

>>> a = np.arange(16).reshape((4, 4))
>>> a
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
>>> a[0] # access the first "row" of data
array([0, 1, 2, 3])
>>> a[0, 2] # access the 3rd column (index 2) in the first row of the data
2

如果您想使用切片访问多个值,您可以使用冒号来表示一个范围:

>>> a[:, 1]  # get the entire 2nd (index 1) column
array([[1, 5, 9, 13]])
>>> a[1:3, -1] # get the second and third elements from the last column
array([ 7, 11])
>>> a[1:3, 1:3] # get the data in the second and third rows and columns
array([[ 5, 6],
[ 9, 10]])

您也可以执行以下步骤:

>>> a[::2, ::2]  # get every other element (column-wise and row-wise)
array([[ 0, 2],
[ 8, 10]])

希望对您有所帮助。一旦这更有意义,您可以通过使用 Nonenp.newaxis 或使用 ... 省略号来查看诸如添加维度之类的东西:

>>> a[:, None].shape
(4, 1, 4)

您可以在这里找到更多信息:http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html

关于python - 使用冒号的 Numpy 数组切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35205173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com