python - 将数据从另一个数组填充到数组
问题描述
我正在尝试用列表数据中我想要的形状填充一个空数组。我正在使用 for 循环来执行此操作,但它只是读取第一个值并用它们填充整个数组。
我想要的是每十二个数字填充一次数组。例如:
列表:[1,2,3, ... , 24]
数组 = [[1,2,...,12], [13,14,...,24]]
这是我的代码:
SSTA_12_data = []
for i in range(0,len(SSTA_12)):
SSTA_12_data.append(SSTA_12["ANOM1+2"][i])
np.shape(SSTA_12_data)
(461,)
Prueba_a = np.empty(shape=(len(Años),12)) (Años has len 39)
Prueba_a[:] = np.nan
for i in range(0,39):
for j in range(0,12):
Prueba_a[i,j] = SSTA_12_data[j]
这就是我得到的:
array([[-0.17, -0.58, -1.31, -0.97, -0.23, 0.07, 0.87, 1.1 , 1.44,
2.12, 3. , 3.34],
[-0.17, -0.58, -1.31, -0.97, -0.23, 0.07, 0.87, 1.1 , 1.44,
2.12, 3. , 3.34],
[-0.17, -0.58, -1.31, -0.97, -0.23, 0.07, 0.87, 1.1 , 1.44,
2.12, 3. , 3.34],
[-0.17, -0.58, -1.31, -0.97, -0.23, 0.07, 0.87, 1.1 , 1.44,
2.12, 3. , 3.34], ...]
解决方案
如果你已经在使用 numpy,你可以考虑使用 reshape。例如,如果SSTA_12_data.shape
is (120,)
,即一维 numpy 数组,那么SSTA_12_data.reshape((-1,12))
将是 shape (10,12)
。在代码中,您可以尝试:
SSTA_12_data = []
for i in range(0,len(SSTA_12)):
SSTA_12_data.append(SSTA_12["ANOM1+2"][i])
padsize = 12 - (len(SSTA_12_data) % 12)
SSTA_12_data = np.array(SSTA_12_data)
Prueba_a = np.pad(SSTA_12_data, (0, padsize)).reshape((-1,12))
推荐阅读
- python - Django connection mysql error, showing the target computer actively refused
- python - 求幂运算的模数初学者问题
- python - 输入未静音/正确指向函数中的新分配
- scope - 跨多个模块访问单例
- php - SQL 语法错误 Maria DB 服务器 Mysqli_query
- sql - sql queries : IN vs equal
- android - 在 Flutter 中使用新版本更新(本机)android 应用程序,同时保留数据库
- python - HeaderParseError in django email form
- erlang - Erlang installation giving erlang-mode is broken error
- python - 将 Pandas 系列对象的所有格式不一致的字符串元素强制转换为 datetime.time 类型