标签: numpy

OpenCV-Python中的简单数字识别OCR

我正在尝试在OpenCV-Python(cv2)中实现"数字识别OCR".它仅用于学习目的.我想在OpenCV中学习KNearest和SVM功能.

我有每个数字的100个样本(即图像).我想和他们一起训练.

letter_recog.pyOpenCV示例附带了一个示例.但我仍然无法弄清楚如何使用它.我不明白什么是样本,响应等.另外,它首先加载一个txt文件,我首先不明白.

稍后搜索一下,我可以在cpp示例中找到一个letter_recognition.data.我使用它并在letter_recog.py模型中为cv2.KNearest创建了一个代码(仅用于测试):

import numpy as np
import cv2

fn = 'letter-recognition.data'
a = np.loadtxt(fn, np.float32, delimiter=',', converters={ 0 : lambda ch : ord(ch)-ord('A') })
samples, responses = a[:,1:], a[:,0]

model = cv2.KNearest()
retval = model.train(samples,responses)
retval, results, neigh_resp, dists = model.find_nearest(samples, k = 10)
print results.ravel()
Run Code Online (Sandbox Code Playgroud)

它给了我一个20000的数组,我不明白它是什么.

问题:

1)letter_recognition.data文件是什么?如何从我自己的数据集构建该文件?

2)什么results.reval()表示?

3)我们如何使用letter_recognition.data文件(KNearest或SVM)编写简单的数字识别工具?

python ocr opencv numpy computer-vision

370
推荐指数
3
解决办法
21万
查看次数

What does -1 mean in numpy reshape?

A numpy matrix can be reshaped into a vector using reshape function with parameter -1. But I don't know what -1 means here.

For example:

a = numpy.matrix([[1, 2, 3, 4], [5, 6, 7, 8]])
b = numpy.reshape(a, -1)
Run Code Online (Sandbox Code Playgroud)

The result of b is: matrix([[1, 2, 3, 4, 5, 6, 7, 8]])

有谁知道-1在这里意味着什么?并且似乎python赋予-1几个含义,例如:array[-1]表示最后一个元素.你能解释一下吗?

python numpy

354
推荐指数
9
解决办法
22万
查看次数

Numpy数组维度

我目前正在尝试学习Numpy和Python.给出以下数组:

import numpy as np
a = np.array([[1,2],[1,2]])
Run Code Online (Sandbox Code Playgroud)

是否有一个返回维度的函数a(ega是一个2乘2的数组)?

size() 返回4,这没有多大帮助.

python arrays numpy dimensions

337
推荐指数
6
解决办法
71万
查看次数

numpy数组和矩阵之间有什么区别?我应该使用哪一个?

各有哪些优缺点?

从我所看到的情况来看,如果需要的话,任何一个都可以作为另一个的替代品,那么我是否应该使用它们或者我应该只坚持其中一个?

该计划的风格会影响我的选择吗?我正在使用numpy做一些机器学习,所以确实有很多矩阵,但也有很多向量(数组).

python arrays numpy matrix

318
推荐指数
5
解决办法
13万
查看次数

如何计算Python中ndarray中某些项的出现次数?

在Python中,我有一个y 打印为的ndarrayarray([0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1])

我正在计算这个数组中有多少0s和多少1s.

但是,当我输入y.count(0)或者y.count(1),它说

numpy.ndarray 对象没有属性 count

我该怎么办?

python numpy count multidimensional-array

308
推荐指数
17
解决办法
43万
查看次数

在numpy数组中查找最接近的值

是否有一种numpy-thonic方式,例如函数,来查找数组中最接近的值

例:

np.find_nearest( array, value )
Run Code Online (Sandbox Code Playgroud)

python search numpy

302
推荐指数
14
解决办法
24万
查看次数

按列对NumPy中的数组进行排序

如何在第n列中对NumPy中的数组进行排序?

例如,

a = array([[9, 2, 3],
           [4, 5, 6],
           [7, 0, 5]])
Run Code Online (Sandbox Code Playgroud)

我想按第二列对行进行排序,以便我回来:

array([[7, 0, 5],
       [9, 2, 3],
       [4, 5, 6]])
Run Code Online (Sandbox Code Playgroud)

python arrays sorting numpy scipy

295
推荐指数
7
解决办法
27万
查看次数

如何在没有科学记法和精确度的情况下漂亮打印numpy.array?

我很好奇,是否有任何方式打印格式化numpy.arrays,例如,以类似于这样的方式:

x = 1.23456
print '%.3f' % x
Run Code Online (Sandbox Code Playgroud)

如果我想打印numpy.array浮点数,它会打印几个小数,通常采用"科学"格式,即使对于低维数组也很难读取.但是,numpy.array显然必须打印成一个字符串,即用%s.这有解决方案吗?

python numpy pretty-print python-2.x

295
推荐指数
9
解决办法
33万
查看次数

numpy.array形状(R,1)和(R,)之间的区别

numpy某些操作中,有些操作会返回,(R, 1)但有些操作会返回(R,).这将使矩阵乘法更加繁琐,因为reshape需要显式.例如,给定一个矩阵M,如果我们想要做的行数numpy.dot(M[:,0], numpy.ones((1, R)))在哪里R(当然,同样的问题也会出现在列中).我们会得到matrices are not aligned错误,因为M[:,0]是在外形(R,),但numpy.ones((1, R))在形状(1, R).

所以我的问题是:

  1. 形状(R, 1)和形状有什么区别(R,).我知道字面上它是数字列表和列表列表,其中所有列表只包含一个数字.只是想知道为什么不设计numpy使它有利于形状(R, 1)而不是(R,)更容易的矩阵乘法.

  2. 上面的例子有更好的方法吗?没有明确重塑像这样:numpy.dot(M[:,0].reshape(R, 1), numpy.ones((1, R)))

python numpy matrix multidimensional-array

280
推荐指数
4
解决办法
11万
查看次数

如何在NumPy中创建一个空数组/矩阵?

我无法弄清楚如何使用我通常使用列表的方式使用数组或矩阵.我想创建一个空数组(或矩阵),然后一次添加一列(或行).

目前,我能找到的唯一方法就是:

mat = None
for col in columns:
    if mat is None:
        mat = col
    else:
        mat = hstack((mat, col))
Run Code Online (Sandbox Code Playgroud)

如果它是一个列表,我会做这样的事情:

list = []
for item in data:
    list.append(item)
Run Code Online (Sandbox Code Playgroud)

有没有办法为NumPy数组或矩阵使用这种表示法?

python arrays numpy

279
推荐指数
7
解决办法
83万
查看次数