Python中的AttributeError
我真的很抱歉用AttributeError来打扰你,但我就是不知道我的代码出了什么问题 我的目标是能够通过我在这里没有列出的某些函数访问C矩阵的元素。但为了实现这一点,我想我必须将矩阵转换为字符串Python中的AttributeError,python,attributeerror,sage,Python,Attributeerror,Sage,我真的很抱歉用AttributeError来打扰你,但我就是不知道我的代码出了什么问题 我的目标是能够通过我在这里没有列出的某些函数访问C矩阵的元素。但为了实现这一点,我想我必须将矩阵转换为字符串 from sage.all import * import numpy as np import random import sage.all def __NewTable__(C): A=np.array_str(C) word="" MS=[] for lette
from sage.all import *
import numpy as np
import random
import sage.all
def __NewTable__(C):
A=np.array_str(C)
word=""
MS=[]
for letter in A:
if letter==')':
word=''.join(letter)
MS.append(word)
word=""
else:
word=''.join(letter)
return MS
length=int(raw_input("Give length of linear code"))
dimention=int(raw_input("Give the dimention"))
FF=int(raw_input("Give the finite field in which you want to work in"))
C = codes.ReedSolomonCode(length, dimention, GF(FF, "x"))
MS=__NewTable__(C)
print MS
在给出参数(长度、维度、FF)后,我得到以下错误
AttributeError:“LinearCode\u with_category”对象没有属性“shape”在计算
np.array\u str(C)
时引发AttributeError
异常。
实际上,np.array\u str
是一个将numpy数组转换为字符串的函数,因此np.array\u str(C)
首先尝试找出它的参数C
(预期为numpy数组)的形状,但在您的用例中,C
不是numpy数组,也没有形状
一个解决办法是写
A = np.array_str(np.array(C.list()))
或者你可以摆脱numpy,直接使用
A = str(C.list())
然后你就不需要导入numpy了
获得更好帮助的提示:
- 从陈述你想要实现的目标开始提问
- 提供
- 特别是跳过交互部分(
raw\u input
)
总之,启动SageMath并定义\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
,如下所示:
def __NewTable__(C):
A = str(C.list())
word = ""
MS = []
for letter in A:
if letter == ')':
word = ''.join(letter)
MS.append(word)
word = ""
else:
word = ''.join(letter)
return MS
以下是该功能的工作原理:
sage: C = codes.ReedSolomonCode(4, 3, GF(5, "x"))
sage: MS = __NewTable__(C)
sage: print MS
[')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')']
不确定这是否是您真正想要的,但至少AttributeError
不存在了,您可以从这里获取它。请毫不犹豫地告诉我们这是如何实现的。在计算np.array\u str(C)
时,会引发AttributeError
异常。
实际上,np.array\u str
是一个将numpy数组转换为字符串的函数,因此np.array\u str(C)
首先尝试找出它的参数C
(预期为numpy数组)的形状,但在您的用例中,C
不是numpy数组,也没有形状
一个解决办法是写
A = np.array_str(np.array(C.list()))
或者你可以摆脱numpy,直接使用
A = str(C.list())
然后你就不需要导入numpy了
获得更好帮助的提示:
- 从陈述你想要实现的目标开始提问
- 提供
- 特别是跳过交互部分(
raw\u input
)
总之,启动SageMath并定义\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
,如下所示:
def __NewTable__(C):
A = str(C.list())
word = ""
MS = []
for letter in A:
if letter == ')':
word = ''.join(letter)
MS.append(word)
word = ""
else:
word = ''.join(letter)
return MS
以下是该功能的工作原理:
sage: C = codes.ReedSolomonCode(4, 3, GF(5, "x"))
sage: MS = __NewTable__(C)
sage: print MS
[')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')', ')']
不确定这是否是您真正想要的,但至少AttributeError
不存在了,您可以从这里获取它。不要犹豫,让我们知道这是怎么回事。什么是GF
?它看起来没有定义,如果是的话,这对于找出哪里出了问题至关重要。为什么您希望能够在ReedSolomonCode
上调用np.array\u str
?@skywalker它是Galois字段,定义的一部分ReedSolomonCode@user2357112我只是想把C数组转换成一个字符串,这样我就可以操作它了。你忘了把numpy作为np导入。我还认为,了解您为l、d、FF测试提供了哪些输入会有所帮助。无论如何,ReedSolomonCode
仍然不是Numpy可以操纵的数组np.array\u str(C.list())
也不起作用。什么是GF
?它看起来没有定义,如果是的话,这对于找出哪里出了问题至关重要。为什么您希望能够在ReedSolomonCode
上调用np.array\u str
?@skywalker它是Galois字段,定义的一部分ReedSolomonCode@user2357112我只是想把C数组转换成一个字符串,这样我就可以操作它了。你忘了把numpy作为np导入。我还认为,了解您为l、d、FF测试提供了哪些输入会有所帮助。无论如何,ReedSolomonCode
仍然不是Numpy可以操纵的数组np.array\u str(C.list())
也不起作用。非常感谢您的回答。这实际上是一位同事的代码,她没有注释,我几乎没有python经验。。是的,你的回答澄清了一些问题,但我还有一段路要走。祝您今天过得愉快!非常感谢你的回答。这实际上是一位同事的代码,她没有注释,我几乎没有python经验。。是的,你的回答澄清了一些问题,但我还有一段路要走。祝您今天过得愉快!