【发布时间】:2019-09-04 09:47:35
【问题描述】:
我知道这个问题已经被问过几十次了,我试图获得使用多维数组的直觉(here,here),但我无法弄清楚这个过程。
我使用来自Calendar 库的yeardatescalendar() 获取一年中的几天、几周、几个月,并打包到一个4D 列表中。
import calendar
cal = calendar.Calendar()
yr_11 = cal.yeardatescalendar(2011)
返回值是月份行列表。每个月行最多包含 3 个月。每个月包含 4 到 6 周,每周包含 1 到 7 天。
我正在尝试将其转换为二维数组,因此它只是一个周列表。但即使我试图这样做,我也不理解输出。
# create an array
arr = np.array(yr_11)
arr.ndim # this returns '2'
arr.shape # this returns (4,3)
# yr_11 holds 63 weeks, so I tried to reshape
new_array = arr.reshape(63,1)
但它会抛出错误:ValueError: cannot reshape array of size 12 into shape (63,1)
有人能解释一下发生了什么并帮助将其转换为二维数组吗?
编辑:基本上我正在寻找这个
[[datetime.date(2010, 12, 27),
datetime.date(2010, 12, 28),
datetime.date(2010, 12, 29),
datetime.date(2010, 12, 30),
datetime.date(2010, 12, 31),
datetime.date(2011, 1, 1),
datetime.date(2011, 1, 2)],
[datetime.date(2011, 1, 3),
datetime.date(2011, 1, 4),
datetime.date(2011, 1, 5),
datetime.date(2011, 1, 6),
datetime.date(2011, 1, 7),
datetime.date(2011, 1, 8),
datetime.date(2011, 1, 9)], ... ]
【问题讨论】:
标签: python arrays numpy multidimensional-array reshape