根据您得到的异常,似乎很可能是temp
is an object
包含序列的数组。你可以简单地使用numpy.empty_like https://docs.scipy.org/doc/numpy/reference/generated/numpy.empty_like.html:
data = np.empty_like(temp) # instead of "data = np.empty(temp.shape)"
这将创建一个具有相同形状和数据类型的新空数组 -like你的原始数组。
例如:
import numpy as np
temp = np.empty((181, 360), dtype=object)
for i in range(maxlat) :
for j in range(maxlon):
temp[i][j] = [1, 2, 3]
使用新方法,它的工作原理是:
data = np.empty_like(temp)
maxlat = temp.shape[0]
maxlon = temp.shape[1]
print(maxlat, maxlon)
for i in range(maxlat) :
for j in range(maxlon):
data[i][j] = temp[i][j]
和这个temp
array 还重现了原始代码示例中的异常:
data = np.empty(temp.shape) # your approach
maxlat = temp.shape[0]
maxlon = temp.shape[1]
print(maxlat, maxlon)
for i in range(maxlat) :
for j in range(maxlon):
data[i][j] = temp[i][j]
抛出异常:
ValueError:使用序列设置数组元素。