[英]Trying to understand the [ ] in Python
我学习了Python,看到了下面的代码。 这段代码是指:创建一个包含 0 到 1 之间的 100 个随机值的数组。此外,确定索引可被 2 整除的所有条目中最大值的条目的值。
var1 = numpy.random.uniform(0, 1, 100)
var2 = numpy.arange(0, 100, 2)
var3 = var1[var2]
print(var3[numpy.argmin(var3)])
但是,我并不完全理解代码的第 2 行和第 3 行。 有人可以澄清一下吗? 为什么我们要创建第 2 行? var1[var2]
是什么意思?
先感谢您。
var3 = var1[var2] 表示您正在从 object 中获取两个值并将其引用到与此相同的变量 3:第 2 行:
var2 = numpy.arange(0, 100, 2)
创建一个从 0 到 100 的数组,每个数组相差两个。
import numpy as bumpy var2 = numpy.arange(0, 100, 2) print(var2) The Output of the code will be: import numpy as numpy var2 = numpy.arange(0, 100, 2) [0,2,4 ,6,8,10,12,14,16,18.......................,98]
您可以使用 del 语句删除对编号 object 的引用。 del 语句的语法是 -
del var1[,var2[,var3[....,varN]]]]
您可以使用 del 语句删除单个 object 或多个对象。
当您创建 class 时,您可以定义
def __getitem__(self, key):
...
如你所愿。 Numpy 数组也覆盖了getitem方法,有几种方法可以使用它。
在 np.array[np.array] 的情况下,第二个数组包含索引,我们从第一个数组中选择(这里 - 每个第二个元素)。
所以首先你必须了解np.arrange()是做什么的?
=> np.arrange()是基于数值范围的数组创建例程之一。 它创建了一个具有均匀间隔值的ndarray实例并返回它的引用。
语法:numpy.arange([start, ]stop, [step, ], dtype=None) -> numpy.ndarray
前三个参数确定值的范围,而第四个参数指定元素的类型:
Start 是定义数组中第一个值的数字(整数或小数)。
Stop 是定义数组结尾且不包含在数组中的数字。
步长是定义数组中每两个连续值之间的间距(差异)的数字,默认为 1。
dtype 是 output 数组元素的类型,默认为 None。
现在,如果我们查看第 2 行的代码:
var2 = numpy.arange(0, 100, 2)
>>> np.arange(start=0, stop=100, step=2)
array([0, 2 , 4)
在这个例子中, start 是 0。因此,得到的数组的第一个元素是 0。 step 是 2,这就是为什么你的第二个值是 0+2,即 2,而数组中的第三个值是 2+2 ,等于 4。
它将 go 直到达到 100 即“停止”。
然后让 go 在第三条语句:
var3 = var1[var2]
它说它是 list_of_values[index_in_array]
如果您仍然有任何疑问,请随时询问我一定会尝试解决它。
抱歉,迟到的回复 var 2 代表索引数组,其中包含 0-100 的偶数,并且在代码中它们在var1中传递了var2 。
var3 = var1[var2]
上面的语句说,当我们运行代码时,var 2 的值将在 var1 中的特定索引处检查,如果我们找到了 vale,那么它将在 var3 中传递。
让我们通过例子来理解:
假设var2中的第一个值是 1 即索引,因此它将检查var1中索引 1 处的值,如果找到它会将其返回到新数组,即var3 。
希望您能理解它,但如果有任何疑问,您可以随时从我这里解决。
在这种情况下,方括号指的是列表 var1 中的索引。 例如,如果我有列表nums = [0, 1, 5, 4, 2]
, print(nums[2])
将产生 5 的 output。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.