我在嘗試將數組分配給另一個數組特定位置時收到此錯誤。 我在創建簡單列表並進行此類分配之前正在執行此操作。但是Numpy比簡單的列表更快,我現在正在嘗試使用它。錯誤:使用序列設置數組元素。 Python/Numpy
問題是因爲我有一個二維數組,存儲一些數據,並在我的代碼中,例如,爲每個位置值計算漸變,所以我創建了另一個2D數組,其中每個位置存儲了漸變它的價值。
import numpy as np
cols = 2
rows = 3
# This works
matrix_a = []
for i in range(rows):
matrix_a.append([0.0] * cols)
print matrix_a
matrix_a[0][0] = np.matrix([[0], [0]])
print matrix_a
# This doesn't work
matrix_b = np.zeros((rows, cols))
print matrix_b
matrix_b[0, 0] = np.matrix([[0], [0]])
會發生什麼情況是因爲我有一個類定義np.zeros((行,COLS))對象,存儲有關的一些數據信息,從而簡化了,例如,圖像數據。
class Data2D(object):
def __init__(self, rows=200, cols=300):
self.cols = cols
self.rows = rows
# The 2D data structure
self.data = np.zeros((rows, cols))
在一個具體的方法中,我必須計算梯度此數據,這是一個2×2矩陣(這導致我想用ndarray,而不是一個簡單的陣列) ,爲此,我創建了此對象的另一個實例來存儲此新數據,其中每個點(像素)應存儲其漸變。我使用的是簡單的列表,雖然可行,但我可以通過numpy獲得一些性能。
有辦法解決這個問題嗎?或者更好的方式來做這樣的事情? 我知道我可以將數組類型定義爲對象,但我不知道我是否失去了做這種事情的表現。
謝謝。
Receive * what * error?提供完整的追溯。 – jonrsharpe