如何在单个循环内实现数组递增?无需嵌套第二个循环
解决方案
首先,你的现有代码中t是二维数组(形状为(7,1)),执行i * t会对数组内每个元素做乘法,因此每次输出的是一个7行1列的数组,不符合你要的单值序列需求。
根据你给出的期望序列0,31,62,93...,这里提供针对性实现方式:
import numpy as np t = np.array([[30],[31],[31],[31],[28],[31],[31]]) n = 7 # 提取序列基准值(这里取t中索引为1的31) for i in range(0, n): print(i * t[1][0], end=',')
输出结果:0,31,62,93,124,155,186,
如果你的真实需求是计算各月末的累计天数(从0开始依次累加每个月的天数),可以用numpy的cumsum函数实现,无需额外循环:
import numpy as np t = np.array([[30],[31],[31],[31],[28],[31],[31]]) # 将二维数组转为一维方便计算 t_flat = t.flatten() # 生成包含初始0的累计序列 cumulative_days = np.concatenate([[0], np.cumsum(t_flat)]) # 遍历输出 for day in cumulative_days: print(day, end=',')
输出结果:0,30,61,92,123,151,182,213,
内容的提问来源于stack exchange,提问作者user1000x
相关产品推荐
相关产品推荐

