AttributeError: 'list' object has no attribute 'as_matrix
时间: 2023-11-13 09:05:49 浏览: 113
这个错误是因为在使用Pandas的DataFrame时,将其转换为numpy数组时使用了已经被淘汰的as_matrix()属性。而这个错误也可以出现在将列表转换为numpy数组时,因为列表没有as_matrix()属性。解决方法是使用values属性来代替as_matrix(),例如df.values。如果是列表,可以使用numpy.array()将其转换为numpy数组。
相关问题
AttributeError: 'Series' object has no attribute 'as_type'
AttributeError: 'Series' object has no attribute 'as_type'是因为Series对象没有'as_type'属性。正确的方法是使用'astype'方法而不是'as_type'方法来改变数据类型。引用中的代码中使用了'astype'方法来将关键点数据转换为float类型。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [AttributeError: ‘Series’ object has no attribute ‘as_matrix’](https://blog.csdn.net/weixin_45195364/article/details/115130960)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [AttributeError: 'Series' object has no attribute 'reshape'](https://blog.csdn.net/qq_36448051/article/details/81592379)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
assignment_matrix = q1.get_assignment_matrix() AttributeError: 'DiscreteFactor' object has no attribute 'get_assignment_matrix'
对不起,我的回答有误。在 pgmpy 中,VariableElimination.query() 方法返回的是一个离散因子(DiscreteFactor)对象,而离散因子对象是没有 get_assignment_matrix() 方法的。
如果你想要遍历这个离散因子对象的每个数据,可以使用它的 values 属性来获得因子的值列表。该列表中的元素顺序是按照参与因子的变量的顺序排列的。你可以通过获取变量的卡迪尔积来得到因子中每个变量的所有取值组合,然后将这些取值组合与 values 列表中的元素一一对应,如下所示:
```
factor = VariableElimination(query_variable, model).query(variables=variables, evidence=evidence)
variable_cardinality = [len(model.get_cardinality(variable)) for variable in factor.variables]
cartesian_product = list(itertools.product(*[range(cardinality) for cardinality in variable_cardinality]))
for i, values in enumerate(cartesian_product):
# 遍历每个取值组合
factor_value = factor.values[i]
print(values, factor_value)
```
注意:这里用到了 itertools.product() 方法来计算变量的卡迪尔积。
阅读全文