将数组转换为正指标

4 投票
5 回答
7041 浏览
提问于 2025-04-29 11:55

假设我们有一个数组,像这样:

[-2,4,3,-1,2]

我们怎么能把它转换成一个正数指示数组,用python来实现,这样我们就能得到

[0,1,1,0,1]

我知道怎么在MATLAB中做到这一点,但在python中我不太清楚。

暂无标签

5 个回答

0

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如,当用户输入一个数字时,我们可能希望程序根据这个数字做出不同的反应。这个过程通常涉及到“条件判断”。

条件判断就像是在问一个问题,然后根据答案来决定接下来该做什么。比如,你可以问:“如果这个数字大于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]
0

在编程中,我们常常会遇到一些问题,特别是在使用某些工具或库的时候。有时候,错误信息可能会让人感到困惑,不知道该如何解决。这个时候,查看其他人的经验和解决方案就显得特别重要。

在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]
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是怎么处理的。

2

在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这些问题可能是因为我们写的代码有bug,或者是使用的工具和库不兼容。解决这些问题通常需要我们仔细检查代码,看看哪里出了问题。

如果你在使用某个特定的库或者框架时遇到问题,首先要确认你使用的版本是否是最新的。有时候,更新到最新版本可以解决很多问题。

另外,查看文档也是一个好主意。文档通常会提供使用方法和常见问题的解决方案,能帮助你更好地理解如何使用这个工具。

如果你还是无法解决问题,可以考虑在网上寻求帮助,比如在论坛或者问答网站上发帖,描述你的问题并附上相关的代码和错误信息。这样,其他人就能更好地理解你的问题,并给出建议。

总之,遇到问题时不要着急,慢慢分析,查找资料,通常都能找到解决办法。

import numpy as np
a = np.array([-2,4,3,-1,2])
np.where(a>0,1,0)
6

因为你在标签中提到了numpy,我猜你想要一个基于这个库的解决方案:

import numpy as np
a = np.array([-2,4,3,-1,2])
positive_indicator = np.int64(a > 0)

你可以选择任何你想要的数据类型来作为结果。所以 np.int8 也可以用。

撰写回答