Joh*_*ell 2 python numpy tensorflow
我想把A变成B:
A =
[1, 1, 1]
[2]
[3, 3, 3, 3]
[4, 4]
B =
[
[0, 1, 1, 1]
[0, 0, 0, 2]
[3, 3, 3, 3]
[0, 0, 4, 4]
]
Run Code Online (Sandbox Code Playgroud)
输入:
- 列表的列表
输出:
- 单个矩阵或张量
- 右对齐
- 左填充 0
在特定情况下,每个第一维度的值与示例中的值相同。您可以使用:
digits = tf.ragged.constant([[1., 1., 1.],[2.],[3., 3., 3., 3.],[4., 4.]])
padded = digits.to_tensor(0.)
final_tensor = tf.reverse(padded, [-1])
Run Code Online (Sandbox Code Playgroud)
输出:
tf.Tensor(
[[0. 1. 1. 1.]
[0. 0. 0. 2.]
[3. 3. 3. 3.]
[0. 0. 4. 4.]], shape=(4, 4), dtype=float32)
Run Code Online (Sandbox Code Playgroud)
A是一个列表,所以我们可以 for 循环并使用tf.pad和tf.stack来获取输出张量。
max_len = max(len(e) for e in A)
res = tf.stack([tf.pad(e, [[max_len - len(e),0]]) for e in A], axis=0)
# array([[0, 1, 1, 1],
# [0, 0, 0, 2],
# [3, 3, 3, 3],
# [0, 0, 4, 4]], dtype=int32)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2818 次 |
| 最近记录: |