1
如果列表中的数字大于0.5,我想得到1,否则返回0。基于num条件的返回数字列表
例如,一个是名单
Matlab的:
b = (a > 0.5)
的Python:
b = [1 if x > 0.5 else 0 for x in a]
b = [int(x > 0.5) for x in a]
我想知道是否有一个更短的表达Python编写?
如果列表中的数字大于0.5,我想得到1,否则返回0。基于num条件的返回数字列表
例如,一个是名单
Matlab的:
b = (a > 0.5)
的Python:
b = [1 if x > 0.5 else 0 for x in a]
b = [int(x > 0.5) for x in a]
我想知道是否有一个更短的表达Python编写?
如果a
是矩阵,则最好使用numpy数组。这基本上是在Python matlab的对应物:
>>> import numpy as np
>>> a = np.array([0.35,0.76,0.22,0.10])
>>> a > 0.5
array([False, True, False, False], dtype=bool)
>>> (a > 0.5).astype(int)
array([0, 1, 0, 0])
a > 0.5
所以构建具有相同尺寸和原来的阵列与存储True
万一数如果大于0.5
,和False
否则布尔值。
通过使用.astype(int)
,您可以将其转换为另一种类型(比布尔值),例如int
。
Numpy可以处理任意维度的数组,而且这些调用是通过Python之外的专用包完成的,因此可以更好地实现性能。
'a'是矩阵吗? –
是的,如果你使用'numpy'。它与matlab等价物一样简单。 –
哦,我找到了你。谢谢! @cᴏʟᴅsᴘᴇᴇᴅ – flyingpot