提问人:GaTe 提问时间:11/17/2023 最后编辑:GaTe 更新时间:11/18/2023 访问量:59
从 numpy 数组中删除元素正在更改原始列表
Deleting elements from numpy array is altering original list
问:
我有一个函数,基本上看起来像这样:
def calculatRatioList(self, inputList=None, listIndex=None):
divisorArray = np.reshape(np.asarray(inputList[listIndex]), (-1))
dividendArray = inputList
ratioList = []
# take element from inputList which will be the dividend
for divisorIndex in range(len(divisorArray)):
columnList = []
del dividendArray[listIndex]
for dividend_column in range(len(dividendArray)):
quotient = 0
dividend = np.asarray(dividendArray)[dividend_column][divisorIndex]
divisor = float(divisorArray[divisorIndex])
try:
quotient = dividend / divisor
except ZeroDivisionError:
quotient = 0
columnList.append(quotient)
ratioList.append(columnList)
return ratioList
我希望人们可以通过查看上面的代码来掌握这个想法。无论如何,简要介绍的想法是:取一个二维数组 (n,5),其中 n 是任意数字。该参数是表示行的参数,该行应被带到 divisorArray,dividendArray 应从 inputList 中获取其余元素。listIndex
为了删除元素并像它一样通过,它总是在任一中更改我的 inputList。del dividendArray[listIndex]
main.py
有人可以解释这种行为有什么好处吗?这让我很恼火,现在它似乎更像是一个错误,而不是凭直觉制造的东西。
什么是删除 numpy 数组中的元素的便捷方法,而无需通过列表。
我通过一个输入,如下所示:inputList = [[a11, a12, a13, a14], [a21, a22, a23, a24], [a31, a32, a33, a34], [a41, a42, a43, a44]]
此输入分配给 dividendArray。在行之后,可以找到del dividendArray[listIndex]
inputList = [[a11, a12, a13, a14], [a21, a22, a23, a24], [a31, a32, a33, a34]]
答: 暂无答案
评论