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

What is purpose of “:” in python array access code line colors[rnd_ind, :]?

本问题已经有最佳答案,请猛点这里访问。

我对Python是个新手,很多构造都会让我的C型大脑崩溃。现在我需要了解一些Python代码是如何工作的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#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体:

1
2
3
4
5
6
7
8
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,开始了解它的输入参数是什么样子的,但我没有看到任何异常。这只是一个数组。

我尝试了搜索,在python list index问题中发现了冒号(:),但这看起来有些不同,因为在我的例子中,:是在,之后写的,但在他们的例子中,它是在某个值之后写的。


这有什么做的,与标准的Python的翼。如果你使用它在Python中的列表,你会得到的是错误的。 </P >

1
2
3
4
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的特异性。它是一个密封的一种multidimensional阵列。第一个数是第一维,第二次是第二次和SO。 </P >

1
2
3
4
5
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] </P >


,<<在[]是numpy密封部分的密封方法的多维翼。 </P >