python 中 numpy 数组的计算
The calculation for numpy array in python
有一个numpy的计算过程如下,已正确通过,但我对过程不太了解,希望得到帮助。步骤如下:
- 有user_item_train矩阵,通过unstack创建如下:
- 有测试数据索引列表test_idx如下:
- 下面的代码:从训练数据集中查找 test_idx 中的 user_id,以及 return 布尔值
- 通过np.linalg.svd(user_item_train,full_matrices=False生成如下u_train数据集:
- 我不明白这一步:
可以请你帮忙解释一下吗?
谢谢。
u_train
是一个二维数组。在 NumPy 中,您可以将列表用作切片。举个例子最容易想象:假设我有一个名为 arr
的 4x4 数组。那么,
arr[3, 1]
给出第 3 行第 1 列的值(记住我们从 0 开始计数)。
arr[[1, 3], [0, 2]]
给我一个 2x1 数组,其中包含以下原始索引:即第 1 行和第 3 行,第 0 列和第 2 列。
+--------+--------+
| (1, 0) | (1, 2) |
+--------+--------+
| (3, 0) | (3, 2) |
+--------+--------+
arr[[0, 3], :]
给出第 0 行和第 3 行,所有列,因为 :
表示该轴上的所有内容:
+--------+--------+--------+--------+
| (0, 0) | (0, 1) | (0, 2) | (0, 3) |
+--------+--------+--------+--------+
| (3, 0) | (3, 1) | (3, 2) | (3, 3) |
+--------+--------+--------+--------+
arr[3]
等同于arr[3, :]
,只是语法糖。
- 对于使用布尔列表作为索引,列表中的
True
表示包含与其相同索引的行,反之亦然。例如,
arr[:, [True, True, False, False]]
等同于 arr[:, [0, 1]]
。
请注意,也许很明显,布尔列表的长度必须与维度相同,因此 arr[:, [True, False, True]]
将引发 IndexError
.
有一个numpy的计算过程如下,已正确通过,但我对过程不太了解,希望得到帮助。步骤如下:
- 有user_item_train矩阵,通过unstack创建如下:
- 有测试数据索引列表test_idx如下:
- 下面的代码:从训练数据集中查找 test_idx 中的 user_id,以及 return 布尔值
- 通过np.linalg.svd(user_item_train,full_matrices=False生成如下u_train数据集:
- 我不明白这一步:
可以请你帮忙解释一下吗?
谢谢。
u_train
是一个二维数组。在 NumPy 中,您可以将列表用作切片。举个例子最容易想象:假设我有一个名为 arr
的 4x4 数组。那么,
arr[3, 1]
给出第 3 行第 1 列的值(记住我们从 0 开始计数)。arr[[1, 3], [0, 2]]
给我一个 2x1 数组,其中包含以下原始索引:即第 1 行和第 3 行,第 0 列和第 2 列。
+--------+--------+
| (1, 0) | (1, 2) |
+--------+--------+
| (3, 0) | (3, 2) |
+--------+--------+
arr[[0, 3], :]
给出第 0 行和第 3 行,所有列,因为:
表示该轴上的所有内容:
+--------+--------+--------+--------+
| (0, 0) | (0, 1) | (0, 2) | (0, 3) |
+--------+--------+--------+--------+
| (3, 0) | (3, 1) | (3, 2) | (3, 3) |
+--------+--------+--------+--------+
arr[3]
等同于arr[3, :]
,只是语法糖。- 对于使用布尔列表作为索引,列表中的
True
表示包含与其相同索引的行,反之亦然。例如,arr[:, [True, True, False, False]]
等同于arr[:, [0, 1]]
。 请注意,也许很明显,布尔列表的长度必须与维度相同,因此arr[:, [True, False, True]]
将引发IndexError
.