在不使用for循环的情况下迭代数组的元素

时间:2019-10-30 19:41:45

标签: python arrays dataframe

我有一个具有一百万个正或负值的数组。

A=[1.3,4,5,6.4,-0.3,-2,-----]

如果元素为负,则必须将值替换为0,如果元素为正,则必须将值替换为1。

我不想将其用于循环,因为这会花费很多时间。

这是我当前的代码:

 for i in range(len(arr)):
     if arr[i] > 0:
         arr[i] = 1
     else:
         arr[i] = 0

3 个答案:

答案 0 :(得分:1)

import numpy as np
arr = np.array([1.3,4,5,6.4,-0.3,-2])
arr = np.where(arr > 0, 1, 0)

答案 1 :(得分:1)

您还可以使用list comprehensions并使用以下代码

arr = [1 if v > 0 else 0 for v in arr]

答案 2 :(得分:0)

无numpy的解决方案。而是list comprehension

arr = [0 if a < 0 else 1 for a in arr]