gpt4 book ai didi

python - 如何在 Jupyter 笔记本的 LaTeX 中自定义 numpy 数组列括号的显示格式?

转载 作者:行者123 更新时间:2023-12-01 09:30:15 25 4
gpt4 key购买 nike

我正在 deeplearning.ai 上学习深度学习。在本类(class)中,Andrew 将训练示例堆叠在如下列中。

enter image description here

numpy 实际上像这样打印数组。

enter image description here

我的问题是,如何自定义 numpy 的输出如下

enter image description here

也就是说,让内部方括号“更长”以覆盖整个列。

如有任何回复,我们将不胜感激。

感谢 smci 的启发,我得到了这个。

from IPython.display import display, Math
display(Math(r'\begin{align}\quad\boldsymbol X=\begin{bmatrix}\begin{bmatrix}135 \\30 \\\end{bmatrix},\begin{bmatrix}57 \\15 \\\end{bmatrix},\begin{bmatrix}150 \\35 \\\end{bmatrix}\end{bmatrix}\end{align}'))

出现另一个问题:

{align}等latex表示法占用了python格式的{},如何解决?如有任何回复,我们将不胜感激。

最佳答案

这是一个小函数,它使用 unicode 将矩阵显示为列。我不知道如何将其连接到 Jupyter:

>>> def pretty_col(data):
... assert data.ndim == 1
... if data.size <= 1:
... return format(data)
... else:
... return format(data[:, None])[1:-1].replace('[', '\u23A1', 1).replace(' [', '\u23A2', data.size-2).replace(' [', '\u23A3').replace(']', '\u23A4', 1).replace(']', '\u23A5', data.size-2).replace(']', '\u23A6')
...
>>> def pretty_cols(data, comma=False):
... assert data.ndim == 2
... if comma:
... return '\n'.join(line[0] + line + line[-1] for line in map(str.join, data.shape[0] // 2 * (' ',) + (', ',) + (data.shape[0] - 1) // 2 * (' ',), zip(*map(str.split, map(pretty_col, data.T), data.shape[1]*('\n',)))))
... else:
... return '\n'.join(line[0] + line + line[-1] for line in map(''.join, zip(*map(str.split, map(pretty_col, data.T), data.shape[1]*('\n',)))))

...
>>> print(pretty_cols(np.arange(-1, 2, 0.25).reshape(4, 3)))
⎡⎡-1. ⎤⎡-0.75⎤⎡-0.5 ⎤⎤
⎢⎢-0.25⎥⎢ 0. ⎥⎢ 0.25⎥⎥
⎢⎢ 0.5 ⎥⎢ 0.75⎥⎢ 1. ⎥⎥
⎣⎣ 1.25⎦⎣ 1.5 ⎦⎣ 1.75⎦⎦
>>>
>>> print(pretty_cols(np.arange(-1, 2, 0.25).reshape(4, 3), True))
⎡⎡-1. ⎤ ⎡-0.75⎤ ⎡-0.5 ⎤⎤
⎢⎢-0.25⎥ ⎢ 0. ⎥ ⎢ 0.25⎥⎥
⎢⎢ 0.5 ⎥, ⎢ 0.75⎥, ⎢ 1. ⎥⎥
⎣⎣ 1.25⎦ ⎣ 1.5 ⎦ ⎣ 1.75⎦⎦

关于python - 如何在 Jupyter 笔记本的 LaTeX 中自定义 numpy 数组列括号的显示格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50033768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com