问题描述
当使用由外部库(lhsmdu 1.1)和numpy 1.18.1生成的数据时,我很难理解广播操作中的错误。
我用它来生成一个(10,5)np.ndarray,然后用几个(5,)np.ndarrays进行缩放。但是,即使该操作中所有数组的形状似乎都可以广播,但我仍然得到:
ValueError: shapes (10,5) and (1,5) not aligned: 5 (dim 1) != 1 (dim 0)
我做了一些测试以试图理解这一点,因为目前我真的不知道:
import numpy as np
import lhsmdu
ub = 2.0 * np.ones(5)
lb = 0.5 * np.ones(5)
k = lhsmdu.sample(ub.size,10)
try:
z = k.T * (ub - lb) + lb
except ValueError:
print("failed original problem")
# 1 - numpy copy
a = np.copy(k)
try:
z = a.T * (ub - lb) + lb
except ValueError:
print("failed test 1")
# 2 - just copy shape
b = np.ones_like(k)
try:
z = b.T * (ub - lb) + lb
except ValueError:
print("failed test 2")
# 3 - copy shape and values
c = np.empty(k.shape)
for ix in range(0,k.shape[0]):
for iy in range(0,k.shape[1]):
c[ix,iy] = k[ix,iy]
try:
z = c.T * (ub - lb) + lb
except ValueError:
print("failed test 3")
# 4 - deepcopy
import copy
d = copy.deepcopy(k)
try:
z = d.T * (ub - lb) + lb
except ValueError:
print("failed test 4")
哪个输出:
failed original problem
failed test 2
failed test 4
我在这里错过了什么琐碎的事情?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)