我想将列表中一个特定元素设置为开销较低的特定值。例如,如果我有以下内容:a = numpy.array([1,2,3,0,4,0])我想把每一个0的值改为10;最后我想得到[1,2,3,10,4,10]在Matlab中,你可以很容易地做到这一点,比如a(a==0)= 10,在numpy中有等价的吗?
a = numpy.array([1,2,3,0,4,0])
lmyy7pcs1#
与Matlab非常相似:
>>> a[a == 0] = 10 >>> a array([ 1, 2, 3, 10, 4, 10])
SciPy网站上有一个非常好的“NumPy for Matlab用户”指南。我应该注意到,这对常规的Python列表不起作用,NumPy数组是一种不同的数据类型,在访问和数学运算符方面更像Matlab矩阵而不是Python列表。
2nbm6dog2#
我想,更像Python的方式应该是这样的:
import numpy a = numpy.array([1,2,3,0,4,0]) for k,v in enumerate(a): if v == 0: a[k] = 10 print a
更有Python的方式(@mtrw提供)
[10 if k == 0 else k for k in a]
2条答案
按热度按时间lmyy7pcs1#
与Matlab非常相似:
SciPy网站上有一个非常好的“NumPy for Matlab用户”指南。
我应该注意到,这对常规的Python列表不起作用,NumPy数组是一种不同的数据类型,在访问和数学运算符方面更像Matlab矩阵而不是Python列表。
2nbm6dog2#
我想,更像Python的方式应该是这样的:
更有Python的方式(@mtrw提供)