python - 在 if 条件下使用 numpy 数组会导致问题,如何解决?
问题描述
我想用“if else”条件测试“z”的每一个元素并返回所需的方程。我的实现导致错误。我尝试了“z.all”和“z.any”函数,但这两个函数将“z”转换为布尔数组。我不希望 z 作为布尔数组。我该怎么做,而 z 仍然是一个 numpy 数组?
z 是一个numpy 数组,其形状为(10610, ))
def function(z):
alpha = 1
if (z < 0):
return -alpha * z
elif (0 <= z <= 1):
return (3 * z ** 3) - (4 * z ** 2) + (2 * z)
else:
return z
解决方案
您可以numpy.where
用于以下两个条件:
np.where(
z < 0,
-alpha * z,
np.where(
z <= 1,
(3 * z ** 3) - (4 * z ** 2) + (2 * z),
z))
推荐阅读
- python - 如何直接从自己的云端硬盘将 .txt(或其他文件类型)导入 Google Colab 笔记本?
- highcharts - 带边距的嵌套圆环图
- c# - 我可以使用 C# 在我的主项目中使用可选包中的视图或视图模型吗?
- postgresql - 并发索引 Postgres 语句退出
- javascript - Jquery防止页面重新加载帖子
- html - iframe 直到悬停后才会加载
- c# - 使用 Json.NET PopulateObject 将稀疏数据合并到字典中
- javascript - ASP.NET Core 2.1 MVC 使用 XMLHttpRequest 将数据从 JavaScript 发送到 Action 方法
- javascript - 音频播放完毕后,如何循环播放随机音频播放器?
- r - 根据两个条件创建一个新列