python-3.x 我不知道这段代码中发生了什么(子设置列表)

gab6jxml  于 2023-02-26  发布在  Python
关注(0)|答案(1)|浏览(140)

我只想知道这段代码是怎么回事:
要同时子集化正则Python列表和numpy数组,可以使用方括号:

x = [4 , 9 , 6, 3, 1]
x[1]

x[1]到底是做什么的?它跟踪上面列表中的索引1吗?

import numpy as np
y = np.array(x)
y[1]

y[1]到底是做什么的?它跟踪上面列表中的索引1吗?
特别是对于numpy,您还可以使用布尔numpy数组:

x = [4 , 9 , 6, 3, 1]
x[1]
import numpy as np
y = np.array(x)  
y[1]

y = np.array(x)是否将列表x转换为numpy数组?
我不知道y[1]是做什么的,它的索引是1吗?
Image of the original problem for reference.

htzpubme

htzpubme1#

第一条指令:

x = [4, 9, 6, 3, 1]

创建一个普通的Python列表
这个列表的元素有索引--从 0 开始的连续整数,所以x[1]检索 9(这个列表的第二个元素)。
然后y = np.array(x)创建一个 numpy数组,用取自 x 的值填充。
该数组的元素也有索引,也是从 0 开始。
因此y[1]也检索到 9
您询问这是否是转换
它实际上不是任何转换,因为 x 仍然是一个列表y 是一个单独的实体(一个数组),两者都有自己的数据缓冲区。
您可以通过在所选的 x 元素中保存任何其他值来确认,然后检查 y 的相应元素是否具有“旧”值。
然后high = y < 5创建一个boolean数组,每个元素声明 y 的对应元素是否小于5。
最后一个语句y[high]是一个布尔索引的例子,它检索 y 中值小于 5 的元素。

相关问题