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

Python 使用numpy中的数组创建输入训练数据,python,arrays,numpy,matrix,Python,Arrays,Numpy,Matrix,我有一个包含2500个14x14个浮点数矩阵的NumPy数组,这些浮点数介于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

我有一个包含2500个14x14个浮点数矩阵的NumPy数组,这些浮点数介于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'

无法将数组数据从dtype('float64')强制转换为dtype('index 2500意味着您有2501个元素,而不是2500,
a=np.array([1,2,3]);a[a.size]->Indexer
,您不会包括大小的上限。谢谢。关于如何将输入转化为矩阵数组进行培训,您有什么想法吗?d.images的形状是什么?它是一个2500个14x14矩阵的NumPy数组。例如,d.images.values[0]返回第一个14x14矩阵。
d.images.value.shape
返回什么?