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,:]中“:”的目的是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章