亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修復 numpy 數組中的“IndexError: only integers”?

如何修復 numpy 數組中的“IndexError: only integers”?

慕容708150 2021-06-09 13:49:49
我正在自學 Python,為學校項目做準備。我遇到了以下錯誤,我不知道如何解決:IndexError:只有整數、切片 ( :)、省略號 ( ...)、numpy.newaxis ( None) 和整數或布爾數組是有效索引這是我嘗試運行的代碼(根據評論對其進行了一些編輯)from sympy import *from sympy.abc import ifrom mpmath import *import numpy as npnp.set_printoptions(suppress=True)N = 3M = np.zeros(shape=(N, N))for n in range(0, N):    M[0, n] = fac(n)    # mpmath.facfor m in range(1, N):    for n in range(0, N):        M[m, n] = (Sum(M[m - 1, i], (i, 0, n + 1))) / (n+1) print(M)本質上,我想為數組指定一個維度,并為數組指定第一行。然后我想以某種方式構造數組中的剩余條目(如果您了解該求和技術,則為 Holder summability)。我已經查看了堆棧溢出中的各種其他問題,但這些問題超出了我目前的知識范圍,或者沒有完全解決我的問題。我已經擺弄了許多參數并將問題隔離到第 13 行。特別是,一旦我將“i”放入 M[m-1,i] 中,我就會收到錯誤消息。如果我輸入任何小于維度的數字而不是“i”,我的代碼就會運行,但這不是我需要的結構。例如,條目M[2,1]應構造為:M[2,1] = (M[1,0] + M[1,1]) / 2我認為這與我寫的總和相對應。我的索引是如何變成非正整數的?
查看完整描述

2 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

您正在混合numpy和sympy,并且會出現問題:


您的sympy導入定義i為一個符號(這對numpy用戶來說并不明顯):


In [1]: from sympy.abc import *

In [2]: i

Out[2]: i

然后你定義一個numpy數組。(import numpy as np優于*):


In [3]: M=np.zeros((3,3))

嘗試將其i用作索引會引發您的錯誤:


In [4]: M[1,i]

------------------------------------------------------------------

IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices

符號可以在sympy矩陣中工作,但在索引 numpy 數組時不起作用。


Ms = sy.zeros(3,3)      # sympy matrix  

for m in range(1,3):

    for n in range(3):

        Ms[m,n] = (sy.Sum(Ms[m-1,i],(i,0,n+1)))/(n+1)

這運行,雖然結果Ms沒有多大意義。


所以問題的根源是你混合了 numpy 和 sympy,可能是因為無知,也可能是因為*進口。


查看完整回答
反對 回復 2021-06-16
  • 2 回答
  • 0 關注
  • 680 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號