Python 如何在LaTeX for Jupyter笔记本中自定义numpy数组列括号的显示格式?
我正在学习deeplearning.ai上的DL。在本课程中,Andrew将培训示例堆叠在如下列中 numpy实际上是这样打印数组的 我的问题是,如何定制numpy的输出,如下所示 也就是说,将内方括号“加长”以覆盖整个柱 如有任何答复,将不胜感激 多亏了smci的灵感,我得到了这个Python 如何在LaTeX for Jupyter笔记本中自定义numpy数组列括号的显示格式?,python,numpy,latex,jupyter-notebook,output-formatting,Python,Numpy,Latex,Jupyter Notebook,Output Formatting,我正在学习deeplearning.ai上的DL。在本课程中,Andrew将培训示例堆叠在如下列中 numpy实际上是这样打印数组的 我的问题是,如何定制numpy的输出,如下所示 也就是说,将内方括号“加长”以覆盖整个柱 如有任何答复,将不胜感激 多亏了smci的灵感,我得到了这个 from IPython.display import display, Math display(Math(r'\begin{align}\quad\boldsymbol X=\begin{bmatrix}
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⎦⎦
>>def pretty\u col(数据):
... assert data.ndim==1
... 如果data.size>>def pretty_cols(数据,逗号=False):
... assert data.ndim==2
... 如果是逗号:
... 返回“\n”.join(行[0]+line+line[-1]表示映射中的行(str.join,data.shape[0]//2*(“”,)+(“”,)+(“”,)+(data.shape[0]-1)//2*(“”,),zip(*map(str.split,map(pretty_col,data.T),data.shape[1]*('\n',)))
... 其他:
... 返回'\n'.join(行[0]+行+行[-1],表示映射中的行('''.join,zip(*map(str.split,map(pretty_col,data.T),data.shape[1]*('\n','))))
...
>>>印花(漂亮的颜色(np.arange(-1,2,0.25)。重塑(4,3)))
⎡⎡-1.⎤⎡-0.75⎤⎡-0.5⎤⎤
⎢⎢-0.25⎥⎢ 0⎥⎢ 0.25⎥⎥
⎢⎢ 0.5⎥⎢ 0.75⎥⎢ 1.⎥⎥
⎣⎣ 1.25⎦⎣ 1.5⎦⎣ 1.75⎦⎦
>>>
>>>印花(漂亮的颜色(np.arange(-1,2,0.25)。重塑(4,3),真)
⎡⎡-1.⎤ ⎡-0.75⎤ ⎡-0.5⎤⎤
⎢⎢-0.25⎥ ⎢ 0⎥ ⎢ 0.25⎥⎥
⎢⎢ 0.5⎥, ⎢ 0.75⎥, ⎢ 1.⎥⎥
⎣⎣ 1.25⎦ ⎣ 1.5⎦ ⎣ 1.75⎦⎦
为了清楚起见,您需要自定义显示格式(例如HTML/CSS、LateX),而不是输出(例如数值)。你想在笔记本、网页、导出到文档中显示它吗?两者都很棒!非常感谢。你的问题启发了我。我将寻找一种在jupyter notebookGreat中使用python打印LateX的方法。如果你搜索这些关键字,你可能会找到一个重复的。这个可能会有所帮助。如果允许的话,我会回答我自己的问题,因为这是一个副本。当然,这是一个直接副本。请把你的答案贴在那里。我们可以将此问题作为重复问题关闭,因此它将重定向到该问题。此解决方案完全满足我的需要。非常感谢你!