我有一个具有一百万个正或负值的数组。
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
答案 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]