python数组访问代码行颜色[rnd_ind,:]中“:”的目的是啥? [复制]

Posted

技术标签:

【中文标题】python数组访问代码行颜色[rnd_ind,:]中“:”的目的是啥? [复制]【英文标题】:What is purpose of ":" in python array access code line colors[rnd_ind, :]? [duplicate]python数组访问代码行颜色[rnd_ind,:]中“:”的目的是什么? [复制] 【发布时间】:2017-04-22 02:47:24 【问题描述】:

我是 python 新手,许多结构让我的 C 风格的大脑感到震惊。 现在我需要了解一些 python 代码是如何工作的。

#Training inputs for RGBcolors
colors = np.array(
     [[0.0, 0.0, 0.0],
      [0.0, 0.0, 1.0],
      [0.0, 0.0, 0.5],
      [0.125, 0.529, 1.0],
      [0.33, 0.4, 0.67],
      [0.6, 0.5, 1.0],
      [0.0, 1.0, 0.0],
      [1.0, 0.0, 0.0],
      [0.0, 1.0, 1.0],
      [1.0, 0.0, 1.0],
      [1.0, 1.0, 0.0],
      [1.0, 1.0, 1.0],
      [0.33, 0.33, 0.33],
      [0.5, 0.5, 0.5],
      [0.66, 0.66, 0.66]])

for i in range(num_training):
    rnd_ind = np.random.randint(0, len(colors))
    s.train(colors[rnd_ind, :]) //what's going on here?

这是train 正文:

def train(self, input_x):
    # Compute the winning unit
    bmu_index, diff = self.session.run([self.bmu_index, self.diff], self.input_placeholder:[input_x], self.current_iteration:self.num_iterations)

    # Update the network's weights
    self.session.run(self.update_weights, self.diff_2:diff, self.dist_sliced:self.dist[bmu_index[0],:], self.current_iteration:self.num_iterations)

    self.num_iterations = min(self.num_iterations+1, self.num_expected_iterations)

我将断点设置为train,开始查看它的输入参数是什么样的,但我没有发现任何异常。这只是一个数组。

我尝试搜索并找到了这个Colon (:) in Python list index 问题,但它看起来有些不同,因为在我的情况下: 写在, 之后,但在他们的情况下它遵循一些值。

【问题讨论】:

它与listobj[:]中的:具有完全相同的目的,但numpy数组支持一个元组中的多个切片 我认为 rnd_ind 用于选择行,: 用于包含所有列。 @MohammadYusufGhazi:是的,每个元组元素切分下一个数组维度;这里第一个索引是一个特定的行,第二个选择该行中的所有列。 @MartijnPieters K. 谢谢 :) 我现在明白了。谢谢。 【参考方案1】:

这与标准 python 数组无关。如果你在 python 列表中使用它,你会得到一个错误。

Traceback (most recent call last):
  File "asd.py", line 3, in <module>
    print(x[0, :])
TypeError: list indices must be integers or slices, not tuple

这是特定于 numpy.它是多维数组的索引。第一个数字是第一个维度,第二个是第二个等等。

import numpy as np

x = np.array([[1,2,3], [3,4,5], [2,3,4], [4,7,8]])

print(x[0, 1:2])

将输出[2]

【讨论】:

【参考方案2】:

[] 索引中的 , 是 NumPy 的 indexing for multi-dimensional arrays 的一部分。

【讨论】:

以上是关于python数组访问代码行颜色[rnd_ind,:]中“:”的目的是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

python3 + Pandas 样式 + 更改备用行颜色

vue非常实用的几行代码日期处理字符串处理数组处理颜色操作

vue非常实用的几行代码日期处理字符串处理数组处理颜色操作

'尝试索引字段'颜色'(零值)'在LUA中访问数组时

命令行颜色换算器(基于python)

OpenCV-Python教程:颜色图(applyColorMap)[只需几行代码生成22种风格各异的彩色图]