使用numpy中的数组数组创建输入训练数据

时间:2016-02-03 11:19:47

标签: python arrays numpy matrix

我有一个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个小时,而且我现在有点神志不清。谢谢你的帮助。

0 个答案:

没有答案