Python中统计数组元素个数并生成新数组的实现问题
基于数组长度生成连续整数数组的解决方案
你需要根据数组y的长度,生成一个从1到该长度的连续整数数组x,当前代码仅生成了包含长度值的单元素数组,以下是正确的实现方式:
问题原因
原代码np.array([len(y)])的作用是将y的长度(13)作为单个元素存入数组,而非生成连续序列。
正确实现方法
方法一:使用np.arange(推荐)
np.arange可以直接生成指定范围的整数序列,注意设置左闭右开的区间:
import numpy as np y = np.array([60. , 57.71689783, 43.92696073, 41.27856221, 52.87672123, 46.75800742, 40.36532134, 42.10047899, 44.65755342, 52.69407306, 48.49316507, 53.78, 55.0 ]) x = np.arange(1, len(y) + 1)
执行后输出:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13])
方法二:使用np.linspace
如果需要通过指定起始、终止值和元素数量来生成序列,可以用linspace并指定整数类型:
x = np.linspace(1, len(y), len(y), dtype=int)
方法三:Python内置range转数组
利用Python原生的range生成序列后转为numpy数组:
x = np.array(range(1, len(y) + 1))
内容的提问来源于stack exchange,提问作者user20032724
相关产品推荐
相关产品推荐

