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

Python中拼接两个numpy.arange数组仅得第一个数组的问题求助

问题分析与解决方案:numpy.arange生成空数组导致拼接失败

嘿,我来帮你揪出问题所在~你遇到的情况是因为第二个np.arange根本没生成任何元素,所以拼接后自然只有第一个数组的内容啦!

问题根源

numpy.arange(start, stop, step)的工作逻辑是:从start开始,每次加上step,直到超过stop为止(注意是超过,不是等于)。你写的b = np.arange(10, 7, 0.5)里,起始值10比终止值7大,但步长是正的0.5,这样每次加步长只会离终止值越来越远,numpy找不到符合条件的元素,所以b其实是个空数组array([], dtype=float64)。

修正方案

只需要把第二个arange的步长改成负数-0.5,让它从10开始往下递减,直到接近7(不包含7):

import numpy as np
a = np.arange(3,6, 0.5, dtype = float)
b = np.arange(10, 7, -0.5, dtype = float)  # 这里把步长改成-0.5
c=np.concatenate((a, b))
print(c)

运行这段代码后,输出就会和你期望的一致:

[3. 3.5 4. 4.5 5. 5.5 10. 9.5 9. 8.5 8. 7.5]

小提示

别忘了np.arange的终止值是不包含的哦,所以你设置stop=7正好能得到最后一个元素7.5(因为10 - 5*0.5 =7.5,下一个元素7就会被排除),完美匹配你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:10:48