手写数字识别包(Pen Digits)
真实开源数据集封装(SKU-85):UCI Pen-Based Digits。16 维笔迹特征 + digit;CC BY 4.0,免费开源。
提供商: 平台自营
交付形态:文件包
适用场景
1 / 5场景说明
本数据包「手写数字识别包(Pen Digits)」适用于以下场景:
1
手写数字识别多分类(目标列:digit)
2
笔迹坐标统计特征的经典 0–9 分类
3
政务/文档数字化相关的公开 OCR 基线
4
多分类混淆矩阵与错误模式分析教学
不适用于:替代正式政务统计报送,或未脱敏的敏感公共数据场景。
使用指南
2 / 5通过统一 API 拉取数据(全站接口相同,仅替换 slug)。
-
1
获取凭证
登录 → 购买 → 在 申请 API Key 签发密钥(仅显示一次)
-
2
发起请求
GET /api/v1/data/government-pen-digits/rows?page=1&size=10,Header:X-API-Key -
3
解析响应
从 JSON 的
rows取数据,用total翻页 -
4
处理错误
401密钥无效 ·403未购买/无权 ·400参数错误 ·429过频 ·502上游失败
数据集说明
3 / 5SKU-85 手写数字识别包(Pen Digits)
- 源:Pen-Based Recognition of Handwritten Digits (UCI)
- 行业:政务/公共数据
- 标签列:
digit - 场景:digit_recognition
- 许可:CC BY 4.0(可商用分发,须署名)
字段 Schema
4 / 5{
"fields": [
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f1",
"nullable": false,
"nunique": 101
},
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f2",
"nullable": false,
"nunique": 96
},
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f3",
"nullable": false,
"nunique": 101
},
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f4",
"nullable": false,
"nunique": 96
},
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f5",
"nullable": false,
"nunique": 101
},
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f6",
"nullable": false,
"nunique": 101
},
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f7",
"nullable": false,
"nunique": 101
},
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f8",
"nullable": false,
"nunique": 101
},
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f9",
"nullable": false,
"nunique": 101
},
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f10",
"nullable": false,
"nunique": 101
},
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f11",
"nullable": false,
"nunique": 101
},
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f12",
"nullable": false,
"nunique": 101
},
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f13",
"nullable": false,
"nunique": 101
},
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f14",
"nullable": false,
"nunique": 101
},
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f15",
"nullable": false,
"nunique": 101
},
{
"dtype": "int64",
"is_label": false,
"kind": "numeric",
"name": "f16",
"nullable": false,
"nunique": 101
},
{
"dtype": "int64",
"is_label": true,
"kind": "numeric",
"name": "digit",
"nullable": false,
"nunique": 10
}
],
"format": "csv",
"label_column": "digit",
"license_hint": "CC BY 4.0",
"source_name": "Pen-Based Recognition of Handwritten Digits (UCI)",
"source_url": "https://archive.ics.uci.edu/dataset/81/pen+based+recognition+of+handwritten+digits"
}
调用示例
5 / 5路径中的 slug 换成已购商品标识即可。完整说明见 API 文档。
curl -H "X-API-Key: ds_你的密钥" \ "https://www.dataocean.zhixxing.cn/api/v1/data/government-pen-digits/rows?page=1&size=10"
import requests
r = requests.get(
"https://www.dataocean.zhixxing.cn/api/v1/data/government-pen-digits/rows",
headers={"X-API-Key": "ds_你的密钥"},
params={"page": 1, "size": 10},
timeout=30,
)
r.raise_for_status()
print(r.json())
const apiKey = "ds_你的密钥";
const url = new URL("https://www.dataocean.zhixxing.cn/api/v1/data/government-pen-digits/rows");
url.searchParams.set("page", "1");
url.searchParams.set("size", "10");
const resp = await fetch(url, {
headers: { "X-API-Key": apiKey },
});
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
const payload = await resp.json();
console.log(payload);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder()
.uri(URI.create("https://www.dataocean.zhixxing.cn/api/v1/data/government-pen-digits/rows?page=1&size=10"))
.header("X-API-Key", "ds_你的密钥")
.GET()
.build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET",
"https://www.dataocean.zhixxing.cn/api/v1/data/government-pen-digits/rows?page=1&size=10", nil)
req.Header.Set("X-API-Key", "ds_你的密钥")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode, string(body))
}
using System.Net.Http;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-API-Key", "ds_你的密钥");
var json = await client.GetStringAsync("https://www.dataocean.zhixxing.cn/api/v1/data/government-pen-digits/rows?page=1&size=10");
Console.WriteLine(json);
1 / 5