Python numpy数组索引可以是-1吗?
我正在试用来自的opencv示例,我需要帮助破译此代码Python numpy数组索引可以是-1吗?,python,opencv,numpy,Python,Opencv,Numpy,我正在试用来自的opencv示例,我需要帮助破译此代码 new_samples = np.zeros((sample_n * self.class_n, var_n+1), np.float32) new_samples[:,:-1] = np.repeat(samples, self.class_n, axis=0) new_samples[:,-1] = np.tile(np.arange(self.class_n), sample_n) 我知道np.repeat和np.tile是什么,但
new_samples = np.zeros((sample_n * self.class_n, var_n+1), np.float32)
new_samples[:,:-1] = np.repeat(samples, self.class_n, axis=0)
new_samples[:,-1] = np.tile(np.arange(self.class_n), sample_n)
我知道
np.repeat
和np.tile
是什么,但我不确定新样本[:,:-1]
或新样本[:,-1]
应该做什么,使用-1索引。我知道numpy
数组索引是如何工作的,但没有见过这种情况。我无法通过搜索找到解决方案。Python切片和numpy切片略有不同。但一般来说,数组或列表中的-1
意味着倒数(从最后一项开始)。在字符串的示例中提到:
>>> word = 'Python'
>>> word[-1] #last character
'n'
至于:
这也可以扩展到numpy数组,如您的示例所示
new_samples[:,:-1]
表示除最后一列之外的所有行
new_samples[:,-1]
意味着所有的行和最后一列只有Python切片和numpy切片略有不同。但一般来说,数组或列表中的-1
意味着倒数(从最后一项开始)。在字符串的示例中提到:
>>> word = 'Python'
>>> word[-1] #last character
'n'
至于:
这也可以扩展到numpy数组,如您的示例所示
new_samples[:,:-1]
表示除最后一列之外的所有行
new_samples[:,-1]
意味着所有的行和最后一列都是不同的“Python切片和numpy切片是不同的。”这是一个潜在的误导性陈述,因为虽然存在差异,但我不会说-1(这是问题的主题)的使用是其中之一。Python列表可以用负值(包括-1)编制索引,并用切片,例如:-1
,以获取除最后一个元素以外的所有元素。@WarrenWeckesser,我编辑了答案,以消除可能给未来读者带来的混淆。“Python切片和numpy切片是不同的。”这可能会误导您的答案,因为虽然存在差异,但我不会说-1(这是问题的主题)的使用是其中之一。Python列表可以用负值(包括-1)编制索引,并用切片,例如:-1
,以获取除最后一个元素以外的所有元素。@WarrenWeckesser,我编辑了答案,以消除可能给未来读者带来的混淆。