我有一个NumPy数组2500个14x14浮点数矩阵,介于0和1之间(表示灰度值)。例如,d.images.values [0] =>第一个14x14矩阵。我需要将这些值传递给一个名为Perceptron的类,它接受一个矩阵的输入数组(基本上是一个数组的数组),以及一个2500x1的目标矩阵。
我的一个简单的工作示例是:
I = np.array([[0,0], [0,1], [1,0], [1,1]])
T = np.array([0,0,0,1]) #1x4 matrix OR target
p = Perceptron(2,1)
p.train(I,T)
print(p.test([0,0])) # => False
现在我只需要输入我的d.images.values作为输入,以及一个2000x1的目标值矩阵,我正在这样做:
T = np.array(np.append(np.ones(500), np.zeros(2000)))
我的直接想法只是制作一个具有正确尺寸的空NumPy数组,并使用d.images.values [0到2500]中的值迭代地填充它:
I = np.empty([2500,196])
for j in range(2500):
I[j] = d.images[j].values
我知道我没有正确的语法,我对NumPy来说相对较新,但在完成文档之后,我仍然找不到一个很好的方法来做到这一点。
我的空数组也可能出错,因为我收到错误:
index 2500 is out of bounds for axis 0 with size 2500
我基于其他SO问题和文档示例的大多数尝试都没有成功,因为维度已关闭(我的控制台中没有错误,我无法重新创建它),在不维护子数组的情况下附加数组,或者我得到错误,这让我觉得我需要使用np.replace()之类的东西修复输入元素数据类型:
Cannot cast array data from dtype('float64') to dtype('<U32') according to the rule 'safe'
道歉,如果我没有解释得这么好,我已经活了大约48个小时,而且我现在有点神志不清。谢谢你的帮助。