将数组转换为正指标
假设我们有一个数组,像这样:
[-2,4,3,-1,2]
我们怎么能把它转换成一个正数指示数组,用python
来实现,这样我们就能得到
[0,1,1,0,1]
我知道怎么在MATLAB
中做到这一点,但在python
中我不太清楚。
5 个回答
在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如,当用户输入一个数字时,我们可能希望程序根据这个数字做出不同的反应。这个过程通常涉及到“条件判断”。
条件判断就像是在问一个问题,然后根据答案来决定接下来该做什么。比如,你可以问:“如果这个数字大于10,我就打印‘大于10’;否则,我就打印‘小于或等于10’。”这样,程序就能根据用户输入的数字来做出不同的反应。
在代码中,这种判断通常用“if”语句来实现。简单来说,if语句就是告诉程序:“如果这个条件成立,就执行这个操作。”
通过使用条件判断,我们可以让程序变得更加灵活和智能,能够处理各种不同的情况。
>>> x = [-2,4,3,-1,2]
>>> map(lambda x: 1 if x > 0 else 0, x)
[0, 1, 1, 0, 1]
在编程中,我们常常会遇到一些问题,特别是在使用某些工具或库的时候。有时候,错误信息可能会让人感到困惑,不知道该如何解决。这个时候,查看其他人的经验和解决方案就显得特别重要。
在StackOverflow上,很多人会分享他们遇到的问题和解决办法。通过这些讨论,我们可以学习到很多实用的技巧和方法,帮助我们更好地理解编程中的各种情况。
如果你在编程过程中遇到困难,不妨去看看这些讨论,可能会找到你需要的答案或者灵感。
In [188]: L = [-2,4,3,-1,2]
In [189]: [int(i>0) for i in L]
Out[189]: [0, 1, 1, 0, 1]
其实,numpy里有一个叫做heaviside的函数。
import numpy as np
a = np.array([-2,4,3,-1,2])
np.heaviside(a, 0)
array([0., 1., 1., 0., 1.])
需要注意的是,heaviside函数的第二个参数是用来指定0是怎么处理的。
在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这些问题可能是因为我们写的代码有bug,或者是使用的工具和库不兼容。解决这些问题通常需要我们仔细检查代码,看看哪里出了问题。
如果你在使用某个特定的库或者框架时遇到问题,首先要确认你使用的版本是否是最新的。有时候,更新到最新版本可以解决很多问题。
另外,查看文档也是一个好主意。文档通常会提供使用方法和常见问题的解决方案,能帮助你更好地理解如何使用这个工具。
如果你还是无法解决问题,可以考虑在网上寻求帮助,比如在论坛或者问答网站上发帖,描述你的问题并附上相关的代码和错误信息。这样,其他人就能更好地理解你的问题,并给出建议。
总之,遇到问题时不要着急,慢慢分析,查找资料,通常都能找到解决办法。
import numpy as np
a = np.array([-2,4,3,-1,2])
np.where(a>0,1,0)
因为你在标签中提到了numpy,我猜你想要一个基于这个库的解决方案:
import numpy as np
a = np.array([-2,4,3,-1,2])
positive_indicator = np.int64(a > 0)
你可以选择任何你想要的数据类型来作为结果。所以 np.int8
也可以用。