poster
2019-12-10, 20:30
我是一位需要使用Python做某些事情的Matlab用户,如果有人可以通过Python语法帮助我,我将非常感激:
(1)列表可以由Python中的元组索引吗?如果是这样,我该怎么做?例如,我想用它来表示数据矩阵。
(2)假设我可以使用由元组索引的列表,例如data [(row,col)],如何删除整个列?我知道在Matlab中,我可以做类似的事情
new_data = [data(:,1:x-1) data(:,x+1:end)]; 如果我想从数据中删除列x。
(3)如何轻松计算每行中非负元素的数量。例如,在Matlab中,我可以执行以下操作:
sum(data>=0,1) 这将给我一个列向量,代表每行中非负条目的数量。
非常感谢!
回答:
我同意所有人。使用Numpy / Scipy。但是,这是您问题的具体答案。
是。索引可以是内置列表或Numpy数组。假设x = scipy.array([10, 11, 12, 13])和y = scipy.array([0, 2]) 。然后x[[0, 2]]和x[y]都返回相同的东西。
new_data = scipy.delete(data, x, axis=0)
(data>=0).sum(axis=1)
注意:示例2说明了Numpy / Scipy的常见陷阱。如示例3所示,通常将axis属性设置为0以沿数组的第一维进行操作,设置为1以沿第二维进行操作,依此类推。但是某些命令(例如delete实际上颠倒了维度的顺序,如示例2所示。您知道行主要还是列主要。
更多&回答... (https://stackoverflow.com/questions/2098695)
(1)列表可以由Python中的元组索引吗?如果是这样,我该怎么做?例如,我想用它来表示数据矩阵。
(2)假设我可以使用由元组索引的列表,例如data [(row,col)],如何删除整个列?我知道在Matlab中,我可以做类似的事情
new_data = [data(:,1:x-1) data(:,x+1:end)]; 如果我想从数据中删除列x。
(3)如何轻松计算每行中非负元素的数量。例如,在Matlab中,我可以执行以下操作:
sum(data>=0,1) 这将给我一个列向量,代表每行中非负条目的数量。
非常感谢!
回答:
我同意所有人。使用Numpy / Scipy。但是,这是您问题的具体答案。
是。索引可以是内置列表或Numpy数组。假设x = scipy.array([10, 11, 12, 13])和y = scipy.array([0, 2]) 。然后x[[0, 2]]和x[y]都返回相同的东西。
new_data = scipy.delete(data, x, axis=0)
(data>=0).sum(axis=1)
注意:示例2说明了Numpy / Scipy的常见陷阱。如示例3所示,通常将axis属性设置为0以沿数组的第一维进行操作,设置为1以沿第二维进行操作,依此类推。但是某些命令(例如delete实际上颠倒了维度的顺序,如示例2所示。您知道行主要还是列主要。
更多&回答... (https://stackoverflow.com/questions/2098695)