python - NumPy 列更改值或添加
问题描述
我编写了如下代码:
# weight shape will be as (108, 796)
Weight = np.zeros((xm_a*xm_b,data1_a))
# tt shape will be as (108, 1)
tt = np.reshape(AR[:,:,i].T,(AR_a*AR_b,1),order='F')
for i ...:
...
Weight[:,i] = tt
运行代码时,将出现与最后一行相关的以下错误:
ValueError:无法将输入数组从形状 (108,1) 广播到形状 (108,)
那么如何解决这个问题呢?我是 python 新手。
解决方案
根据我对问题的理解,我们可以创建一个示例数据,例如:
Weight = np.array([[3, 4], [4, 2], [6, 3]])
tt = np.array([[7], [17], [177]])
现在,我们可以使用新的tt替换权重中的柱状:
for i in range(2):
Weight[:, i] = tt[:, 0]
其中Weight将根据tt进行如下更改:
新权重 = np.array([[7, 7], [17, 17], [177, 177]])
对于tt在循环期间何时发生变化,例如,如果:
tt = [np.array([[7], [17], [177]]), np.array([[5], [15], [155]])]
我们可以使用tt列表中的每个子 tt替换权重中的柱状:
for i, j in enumerate(tt):
Weight[:, i] = j[:, 0]
这将导致新的权重为:
新权重 = np.array([[7, 5], [17, 15], [177, 155]])
推荐阅读
- python - 在一个 TestCase 中测试指定的功能之一
- qt - 扩展/连接多个 ListModel 的声明式方法
- c# - 由于没有隐式引用转换,不能使用类型作为类型参数
- ibm-mobilefirst - 使用 MobileFirst 8 到 F5 LoadBalancer 时出错
- java - Java中打印1到10的说明
- vuejs2 - Vue.js 道具未在子组件中呈现
- qt - 如何仅查找 Qt 设计器中显示的小部件的那些属性?
- android - android: 为 mqtt 发布消息设置 qos
- sql - 如何在不更改顺序的情况下从 oracle 中的多行中获取一个逗号分隔的行
- r - 将润滑周期对象从 DD:HH:MM:SS 舍入到 HH:MM:SS