You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:NumPy logical_and生成结果类型与预期不符问题

问题:NumPy逻辑运算结果格式不符合预期

我正在使用NumPy对DataFrame列数据执行逻辑运算,检查每行数值与前后行的差值绝对值是否均≤2。目前得到输出,但结果格式与预期不符。

代码示例

import pandas as pd
import numpy as np

ad = pd.DataFrame({'a':[1,3,4,6,7,5,9,10]})
op = np.array(np.logical_and.reduce([ad['a'].
                       diff(x).abs().le(2) for x in [1,-1]]))
print(op)

当前输出

[False  True  True  True  True False False False]

预期输出

[False,  True,  True,  True,  True, False, False, False]

解决方法

当前输出是NumPy数组的默认打印格式(空格分隔元素),要得到带逗号分隔的格式,有两种简单方式:

方式1:将NumPy数组转换为Python列表

调用数组的tolist()方法,直接转为Python列表后打印:

import pandas as pd
import numpy as np

ad = pd.DataFrame({'a':[1,3,4,6,7,5,9,10]})
op = np.array(np.logical_and.reduce([ad['a'].diff(x).abs().le(2) for x in [1,-1]]))
print(op.tolist())

输出:[False, True, True, True, True, False, False, False]

方式2:用NumPy的array2string指定分隔符

使用np.array2string()方法,通过separator参数设置元素间的分隔符为, :

import pandas as pd
import numpy as np

ad = pd.DataFrame({'a':[1,3,4,6,7,5,9,10]})
op = np.array(np.logical_and.reduce([ad['a'].diff(x).abs().le(2) for x in [1,-1]]))
print(np.array2string(op, separator=', '))

输出:[False, True, True, True, True, False, False, False]

内容的提问来源于stack exchange,提问作者Mainland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 12:18:26