<div><div dir="ltr">
<div>Foad,</div><div>In response to:</div></div></div><div><div><br></div><div>Thanks but I know it is very bad:</div><ul><li>it does not work properly for floats</li><li>it only works for 1D and 2D</li><li>there can be some recursive function I believe.</li></ul></div><div><div>I think this is the awesome part about being able to write 10 lines of code that are specified to representing exactly 1 thing.</div><div><br></div><div>Other than that, yeah, encouraging people to transition from matlab is challenging. Matlab is definitely good at doing matrix operations. Python3 somewhat helps in that regard. <br></div><div dir="auto"><br></div><div>I'm super glad you are bringing usability issues up and working toward solving them.</div><div><br></div><div>Maybe you can describe the interface for python you find practical to introduce to newcomers so as to motivate the discussion?</div><div dir="auto"><br></div><div dir="auto">Mark</div><div><br></div>

</div><div><br><div class="gmail_quote"><div dir="ltr">On Tue, Nov 6, 2018 at 3:57 AM Foad Sojoodi Farimani <<a href="mailto:f.s.farimani@gmail.com" target="_blank">f.s.farimani@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr">Wow, this is awesome.<div>Some points though:</div><div><ul><li>not everybody uses IPython/Jupyter having the functionality for conventional consols would also help. something like Sypy's init_printing/init_session which smartly chooses the right representation considering the terminal.</li><li>I don't think putting everything in boxes is helping. it is confusing. I would rather having horizontal and vertical square brackets represent each nested array</li><li>it would be awesome if in IPython/Jupyter hovering over an element a popup would show the index</li><li>one could read the width and height of the terminal and other options I mentioned in reply Mark to show L R U P or combination of these plus some numbers (similar to Pandas .head .tail) methods and then show the rest by unicod 3dot</li></ul><div>P.S. I had no idea our university Microsoft services also offers Azure Notebooks awesome :P</div></div><div><br></div><div>F.</div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Nov 6, 2018 at 9:45 AM Eric Wieser <<a href="mailto:wieser.eric%2Bnumpy@gmail.com" target="_blank">wieser.eric+numpy@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Here's how that could look<div><br><div><a href="https://numpyintegration-ericwieser.notebooks.azure.com/j/notebooks/pprint.ipynb" target="_blank">https://numpyintegration-ericwieser.notebooks.azure.com/j/notebooks/pprint.ipynb</a><br></div><div><br></div><div>Feel free to play around and see if you can produce something more useful</div><div><br></div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, 5 Nov 2018 at 23:28 Foad Sojoodi Farimani <<a href="mailto:f.s.farimani@gmail.com" target="_blank">f.s.farimani@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>It is not highking if I asked for it :))</div><div>for IPython/Jupyter using Markdown/LaTeX would be awesome </div><div>or even better using HTML to add sliders just like Pandas...</div></div><div dir="ltr"><div><br></div><div>F.</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Nov 6, 2018 at 6:51 AM Eric Wieser <<a href="mailto:wieser.eric%2Bnumpy@gmail.com" target="_blank">wieser.eric+numpy@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hijacking this thread while on the topic of pprint - we might want to look into a table-based `_html_repr_` or `_latex_repr_` for use in ipython - where we can print the full array and let scrollbars replace ellipses.<div><br></div><div>Eric</div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, 5 Nov 2018 at 21:11 Mark Harfouche <<a href="mailto:mark.harfouche@gmail.com" target="_blank">mark.harfouche@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="m_1518016847961342169m_8399121104367297765m_7333245440517467936m_-185302057857518534m_8848907058574152615m_5127269352113638813markdown-here-wrapper"><p style="margin:0px 0px 1.2em!important">Foad, </p>
<p style="margin:0px 0px 1.2em!important">Visualizing data is definitely a complex field. I definitely feel your pain.<br>Printing your data is but one way of visualizing it, and probably only useful for very small and constrained datasets.<br>Have you looked into <a href="https://docs.scipy.org/doc/numpy-1.15.1/reference/generated/numpy.set_printoptions.html" target="_blank"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">set_printoptions</code></a> to see how numpy’s existing capabilities might help you with your visualization?</p>
<p style="margin:0px 0px 1.2em!important">The code you showed seems quite good. I wouldn’t worry about performance when it comes to functions that will seldom be called in tight loops.<br>As you’ll learn more about python and numpy, you’ll keep expanding it to include more use cases.<br>For many of my projects, I create small submodules for visualization tailored to the specific needs of the particular project.<br>I’ll try to incorporate your functions and see how I use them.</p>
<p style="margin:0px 0px 1.2em!important">Your original post seems to have some confusion about C Style vs F Style ordering. I hope that has been resolved.<br>There is also a lot of good documentation<br><a href="https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html#numpy-for-matlab-users-notes" target="_blank">https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html#numpy-for-matlab-users-notes</a><br>about transitioning from matlab.</p></div></div><div dir="ltr"><div class="m_1518016847961342169m_8399121104367297765m_7333245440517467936m_-185302057857518534m_8848907058574152615m_5127269352113638813markdown-here-wrapper">
<p style="margin:0px 0px 1.2em!important">Mark</p>
<div title="MDH:PGRpdiBkaXI9Imx0ciI+PGRpdiBkaXI9Imx0ciI+PGRpdj5Gb2FkLCZuYnNwOzxicj48L2Rpdj48
ZGl2Pjxicj48L2Rpdj48ZGl2PlZpc3VhbGl6aW5nIGRhdGEgaXMgZGVmaW5pdGVseSBhIGNvbXBs
ZXggZmllbGQuIEkgZGVmaW5pdGVseSBmZWVsIHlvdXIgcGFpbi48L2Rpdj48ZGl2PlByaW50aW5n
IHlvdXIgZGF0YSBpcyBidXQgb25lIHdheSBvZiB2aXN1YWxpemluZyBpdCwgYW5kIHByb2JhYmx5
IG9ubHkgdXNlZnVsIGZvciB2ZXJ5IHNtYWxsIGFuZCBjb25zdHJhaW5lZCBkYXRhc2V0cy48L2Rp
dj48ZGl2PkhhdmUgeW91IGxvb2tlZCBpbnRvIFtgc2V0X3ByaW50b3B0aW9uc2BdKDxhIGhyZWY9
Imh0dHBzOi8vZG9jcy5zY2lweS5vcmcvZG9jL251bXB5LTEuMTUuMS9yZWZlcmVuY2UvZ2VuZXJh
dGVkL251bXB5LnNldF9wcmludG9wdGlvbnMuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIGRhdGEtc2Fm
ZXJlZGlyZWN0dXJsPSJodHRwczovL3d3dy5nb29nbGUuY29tL3VybD9xPWh0dHBzOi8vZG9jcy5z
Y2lweS5vcmcvZG9jL251bXB5LTEuMTUuMS9yZWZlcmVuY2UvZ2VuZXJhdGVkL251bXB5LnNldF9w
cmludG9wdGlvbnMuaHRtbCZhbXA7c291cmNlPWdtYWlsJmFtcDt1c3Q9MTU0MTU2NjY0MjYyMjAw
MCZhbXA7dXNnPUFGUWpDTkVlcVotUFRYeHpuYWpOY2dvV3lOQm8xc2x0MHciPmh0dHBzOi8vPHdi
cj5kb2NzLnNjaXB5Lm9yZy9kb2MvbnVtcHktMS4xNS48d2JyPjEvcmVmZXJlbmNlL2dlbmVyYXRl
ZC9udW1weS48d2JyPnNldF9wcmludG9wdGlvbnMuaHRtbDwvYT4pIHRvIHNlZSBob3cgbnVtcHkn
cyBleGlzdGluZyBjYXBhYmlsaXRpZXMgbWlnaHQgaGVscCB5b3Ugd2l0aCB5b3VyIHZpc3VhbGl6
YXRpb24/PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+VGhlIGNvZGUgeW91IHNob3dlZCBz
ZWVtcyBxdWl0ZSBnb29kLiBJIHdvdWxkbid0IHdvcnJ5IGFib3V0IHBlcmZvcm1hbmNlIHdoZW4g
aXQgY29tZXMgdG8gZnVuY3Rpb25zIHRoYXQgd2lsbCBzZWxkb20gYmUgY2FsbGVkIGluIHRpZ2h0
IGxvb3BzLjwvZGl2PjxkaXY+QXMgeW91J2xsIGxlYXJuIG1vcmUgYWJvdXQgcHl0aG9uIGFuZCBu
dW1weSwgeW91J2xsIGtlZXAgZXhwYW5kaW5nIGl0IHRvIGluY2x1ZGUgbW9yZSB1c2UgY2FzZXMu
PC9kaXY+PGRpdj5Gb3IgbWFueSBvZiBteSBwcm9qZWN0cywgSSBjcmVhdGUgc21hbGwgc3VibW9k
dWxlcyBmb3IgdmlzdWFsaXphdGlvbiB0YWlsb3JlZCB0byB0aGUgc3BlY2lmaWMgbmVlZHMgb2Yg
dGhlIHBhcnRpY3VsYXIgcHJvamVjdC48L2Rpdj48ZGl2PkknbGwgdHJ5IHRvIGluY29ycG9yYXRl
IHlvdXIgZnVuY3Rpb25zIGFuZCBzZWUgaG93IEkgdXNlIHRoZW0uPGJyPjwvZGl2PjxkaXY+PGJy
PjwvZGl2PjxkaXY+WW91ciBvcmlnaW5hbCBwb3N0IHNlZW1zIHRvIGhhdmUgc29tZSBjb25mdXNp
b24gYWJvdXQgQyBTdHlsZSB2cyBGIFN0eWxlIG9yZGVyaW5nLiBJIGhvcGUgdGhhdCBoYXMgYmVl
biByZXNvbHZlZC4gPGJyPjwvZGl2PjxkaXY+VGhlcmUgaXMgYWxzbyBhIGxvdCBvZiBnb29kIGRv
Y3VtZW50YXRpb248L2Rpdj48ZGl2PjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5zY2lweS5vcmcvZG9j
L251bXB5L3VzZXIvbnVtcHktZm9yLW1hdGxhYi11c2Vycy5odG1sI251bXB5LWZvci1tYXRsYWIt
dXNlcnMtbm90ZXMiIHRhcmdldD0iX2JsYW5rIiBkYXRhLXNhZmVyZWRpcmVjdHVybD0iaHR0cHM6
Ly93d3cuZ29vZ2xlLmNvbS91cmw/cT1odHRwczovL2RvY3Muc2NpcHkub3JnL2RvYy9udW1weS91
c2VyL251bXB5LWZvci1tYXRsYWItdXNlcnMuaHRtbCUyM251bXB5LWZvci1tYXRsYWItdXNlcnMt
bm90ZXMmYW1wO3NvdXJjZT1nbWFpbCZhbXA7dXN0PTE1NDE1NjY2NDI2MjIwMDAmYW1wO3VzZz1B
RlFqQ05HTFVvTjBVZUMza1l5T3o3TlhqYUpZcXFWZ0hnIj5odHRwczovL2RvY3Muc2NpcHkub3Jn
L2RvYy88d2JyPm51bXB5L3VzZXIvbnVtcHktZm9yLW1hdGxhYi08d2JyPnVzZXJzLmh0bWwjbnVt
cHktZm9yLW1hdGxhYi08d2JyPnVzZXJzLW5vdGVzPC9hPjwvZGl2PjxkaXY+YWJvdXQgdHJhbnNp
dGlvbmluZyBmcm9tIG1hdGxhYi48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pk1hcms8YnI+PC9k
aXY+PGRpdj48YnI+PC9kaXY+PC9kaXY+PC9kaXY+" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0"></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Nov 5, 2018 at 4:46 PM Foad Sojoodi Farimani <<a href="mailto:f.s.farimani@gmail.com" target="_blank">f.s.farimani@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hello everyone,</div><div><br></div><div>Following <a href="https://stackoverflow.com/q/53126305/4999991" target="_blank">this question</a>, I'm convinced that numpy ndarrays are not MATLAB/mathematical multidimentional matrices and I should stop expecting them to be. However I still think it would have a lot of benefit to have a function like sympy's pprint to pretty print. something like pandas .head and .tail method plus  .left .right .UpLeft .UpRight .DownLeft .DownRight methods. when nothing mentioned it would show 4 corners and put dots in the middle if the array is to big for the terminal. </div><div><br></div><div>Best,</div><div>Foad</div></div>
_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@python.org" target="_blank">NumPy-Discussion@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/numpy-discussion" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/numpy-discussion</a><br>
</blockquote></div>
_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@python.org" target="_blank">NumPy-Discussion@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/numpy-discussion" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/numpy-discussion</a><br>
</blockquote></div>
_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@python.org" target="_blank">NumPy-Discussion@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/numpy-discussion" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/numpy-discussion</a><br>
</blockquote></div>
_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@python.org" target="_blank">NumPy-Discussion@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/numpy-discussion" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/numpy-discussion</a><br>
</blockquote></div>
_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@python.org" target="_blank">NumPy-Discussion@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/numpy-discussion" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/numpy-discussion</a><br>
</blockquote></div>
_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@python.org" target="_blank">NumPy-Discussion@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/numpy-discussion" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/numpy-discussion</a><br>
</blockquote></div>
</div>