{"action":"opened","issue":{"url":"https://api.github.com/repos/sympy/sympy/issues/9456","labels_url":"https://api.github.com/repos/sympy/sympy/issues/9456/labels{/name}","comments_url":"https://api.github.com/repos/sympy/sympy/issues/9456/comments","events_url":"https://api.github.com/repos/sympy/sympy/issues/9456/events","html_url":"https://github.com/sympy/sympy/issues/9456","id":83920061,"number":9456,"title":"Matrix.row_del(index) for `index < -M.rows` deletes the last row","user":{"login":"gxyd","id":7712241,"avatar_url":"https://avatars.githubusercontent.com/u/7712241?v=3","gravatar_id":"","url":"https://api.github.com/users/gxyd","html_url":"https://github.com/gxyd","followers_url":"https://api.github.com/users/gxyd/followers","following_url":"https://api.github.com/users/gxyd/following{/other_user}","gists_url":"https://api.github.com/users/gxyd/gists{/gist_id}","starred_url":"https://api.github.com/users/gxyd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gxyd/subscriptions","organizations_url":"https://api.github.com/users/gxyd/orgs","repos_url":"https://api.github.com/users/gxyd/repos","events_url":"https://api.github.com/users/gxyd/events{/privacy}","received_events_url":"https://api.github.com/users/gxyd/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-06-02T08:48:27Z","updated_at":"2015-06-02T08:48:27Z","closed_at":null,"body":"```\r\n>>> from sympy import *\r\n>>> M = Matrix( [ [1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6] ] )\r\n>>> M.row_del ( 8 )                                            # any index >= M.rows to be used\r\n>>> print( M )\r\nMatrix( [ [ 1, 2, 3], [2, 3, 4], [3, 4, 5] ] )               # deletes the last row of Matrix for Index >= M.rows\r\n\r\n>>> N = Matrix( [ [ 1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6] ] )\r\n>>> N.row_del( -10 )\r\n>>> print( N )                                                     # deletes the last row of Matrix with any `Negative Index`\r\nMatrix( [ [ 1, 2, 3], [2, 3, 4], [3, 4, 5] ] )\r\n\r\nBut the output for .row_insert() shows different behavior\r\n\r\n>>> M = Matrix( [ [1, 2, 3], [2, 3, 4], [3, 4, 5] ] )\r\n>>> M.row_insert ( 10, Matrix( [ [ 5, 5, 5 ] ] ) )\r\nMatrix( [ [1, 2, 3], [2, 3, 4], [3, 4, 5], [5, 5, 5] ] )   # inserts the row at the very end for Index >= M.rows\r\n\r\n>>> N = Matrix( [ [ 1, 2, 3], [2, 3, 4], [3, 4, 5] ] )\r\n>>> N.row_insert( -10, Matrix( [ [5, 5, 5 ] ] ) )\r\nMatrix( [ [5, 5, 5], [1, 2, 3], [2, 3, 4], [3, 4, 5] ] )     # inserts the row at the very beginning for `Negative Index`\r\n```\r\n\r\nIt should be more consistent with the way it works with indices. I have copied my code from [google group sympy post] (https://groups.google.com/forum/#!topic/sympy/pOWIlDNrU2o)."}}