使用notion构建个人财务管理系统

基于Jeecgboot3.9.0的vue3版本前后端分离的flowable流程管理平台 阅读详情

引言

在中国,对每个人每月的财务进行统计存在困难。虽然绝大多数人都已经只使用移动支付,所有的消费记录都已经被记录,但是消费记录被保存于腾讯与阿里两家公司中,双方之间信息并不互通。尤其在双方各自的APP上不能使用对方的支付方式,这导致不能只选择一家公司方式进行支付。同时每家公司也没有提供便捷的自动化的导出数据记录的方法,这也许是出于数据安全的考虑。上述原因都对个人财务数据管理造成障碍。

个人财务管理的好处是显而易见的。通过对自己的财务进行统计和分析,可以更好地掌握自己的消费情况,为理性消费提供依据。同时,对于有存款和投资需求的人来说,也可以更好地规划自己的资金流向,更好地实现财富管理。

在这里,我们将使用 Python 将数据导入到 Notion 的数据库中,对数据进行同一管理。Notion 是一种功能强大且易于使用的跨平台软件,可以用来构建个人财务管理系统。使用 Notion 构建个人财务管理系统具有以下优点:

  1. 可以将多个数据源整合在一个地方,方便进行管理和分析。
  2. 可以使用 Notion 的多种功能,如表格、图表和日历,更直观地展示数据。
  3. Notion 的数据记录和导入功能非常方便,可以自动化地导入数据,减少手动输入数据的时间和错误。

正文

1. 获取财务数据

1.1 获取支付宝财务账单

首先登录支付宝 知托付! (alipay.com),扫码登录,下载你所需要导入的数据。

Untitled.png
点击交易记录

Untitled 1.png

选择交易时间,点击下载excel格式,最后你会获得一个压缩包,解压缩后是一个csv格式的表格。

1.2 获取微信账单

微信的账单获取要麻烦一些,打开手机版的微信,点击服务,点击钱包,点击右上方的账单,点击常见问题,点击下载账单,填写发送的邮箱,在邮箱里面下载压缩包,压缩包密码会在微信的通知中显示。

2. 获取notion的API秘钥

2.1 获取秘钥

点击网站My integrations | Notion Developers,登录你的notion账号。

Untitled 2.png

点击New integration按钮,进去网页后填写name,点击Submit

Untitled 3.png

2.2 关联页面

进入你需要输入的数据库的页面,使你的页面与API进行关联。

Untitled 4.png

2.3 创建你的数据库

这是我的table模板样式,如果你希望使用我的代码,最好模板样式和我一样。

Untitled 5.png

3 代码编写

3.1 导入python库

import pandas as pd
import requests

Pandas库是一个免费、开源的第三方Python库,是Python数据分析必不可少的工具之一,它为Python数据分析提供了高性能,且易于使用的数据结构,即Series和DataFrame。Requests库是Python的第三方库,是目前公认的爬取网页最好的库之一,特点有简单,代码简洁,甚至一行代码就能爬取到网页。​**1** 它使用 Python 语言编写,并且采用了 Apache2 Licensed(一种开源协议)的 HTTP 库。

3.2 删除干扰数据

由于要使用pandas库对csv文件进行解析,所以要删除一些csv文件携带的多余信息。

Untitled 6.png

3.3 测试秘钥

NOTION_KEY = 'secret_XU1b766517dacf018ddc1c0da0fbb869a6'
headers = {'Authorization': f"Bearer {NOTION_KEY}", 
           'Content-Type': 'application/json', 
           'Notion-Version': '2022-06-28'}

其中NOTION_KEY的值为2.1步中你获取的秘钥,

search_params = {"filter": {"value": "page", "property": "object"}}
search_response = requests.post(
    f'https://api.notion.com/v1/search', 
    json=search_params, headers=headers)

print(search_response.json())

如果访问成功,通过这串代码可以获得一下结果

{
  "object": "list",
  "results": [
    {
      "object": "page",
      "id": "4465d9f6-11fd-4fe6-9f29-f263da0d9c12",
      "created_time": "2023-03-29T14:10:00.000Z",
      "last_edited_time": "2023-03-30T12:22:00.000Z",
      "created_by": {
        "object": "user",
        "id": "c20f3b73-0a58-4b27-8fae-9589dd1de767"
      },
      "last_edited_by": {
        "object": "user",
        "id": "c20f3b73-0a58-4b27-8fae-9589dd1de767"
      },
      "cover": "None",
      "icon": "None",
      "parent": {
        "type": "workspace",
        "workspace": true
      },
      "archived": false,
      "properties": {
        "title": {
          "id": "title",
          "type": "title",
          "title": [
            {
              "type": "text",
              "text": {
                "content": "账单",
                "link": "None"
              },
              "annotations": {
                "bold": false,
                "italic": false,
                "strikethrough": false,
                "underline": false,
                "code": false,
                "color": "default"
              },
              "plain_text": "账单",
              "href": "None"
            }
          ]
        }
      },
      "url": "https://www.notion.so/4465d9f611fd4fe69f29f263da0d9c12"
    }
  ],
  "next_cursor": "None",
  "has_more": false,
  "type": "page_or_database",
  "page_or_database": {}
}

3.4 格式化账单

由于支付宝与微信的账单数据格式不统一,都且包含了大量无用的数据,同时有部分数据为退款,或者没有进行交易,所以使用代码对数据进行清洗重构。

def alipay_method(path):
    alipay = pd.read_csv(path,encoding='gbk')
    alipay = alipay.iloc[:,[8,7,9,2,10,11,]]
    alipay.columns = ['name','company','money','time','status','method',]
    alipay['time'] = pd.to_datetime(alipay['time'])
    alipay = alipay.replace(' ', '', regex=True)
    alipay = alipay.loc[alipay['method'].isin(['交易成功','等待确认收货'])]
    alipay = alipay.loc[alipay['status'].isin(['支出','收入'])]
    alipay['method'] = '支付宝'
    alipay['time'] = alipay['time'].dt.strftime('%Y-%m-%dT%H:%M:%S')
    return alipay

def weixing_method(path):
    weixing = pd.read_csv('微信支付账单(20221229-20230329).csv')
    weixing = weixing.iloc[:,[3,2,5,0,4,7,]]
    weixing.columns = ['name','company','money','time','status','method',]
    weixing['time'] = pd.to_datetime(weixing['time'])
    weixing = weixing.replace(' ', '', regex=True)
    weixing = weixing.loc[weixing['status'].isin(['支出','收入'])]
    weixing['money'] = weixing['money'].replace('¥', '', regex=True)
    weixing['money'] = weixing['money'].replace(',', '', regex=True).astype('float')
    weixing['method'] = '微信'
    weixing['time'] = weixing['time'].dt.strftime('%Y-%m-%dT%H:%M:%S')
    return weixing

清洗完后的数据示例,

Untitled 8.png

3.4 导入数据进入notion

def get_json(name,company,money,time,status,method,database_id = 46beab1a-3cf5-4276-b998-1d8afecf62bf):
    if method == '支付宝':
        color = 'blue'
    else :
        color = 'green'

    if status == '收入':
        color1 = 'green'
    else:
        color1 ='red'

    pay_json =  {
                    "parent": {"type": "database_id","database_id": datebase_id},
                    "properties": {
                        "交易额度": {"type": "number","number": money},
                        "交易时间": {"type": "date","date": {"start": time + ".000+08:00"}},
                        "支入支出": {"type": "status","status": {"name": status,"color": color1}},
                        "交易对方": {"type": "rich_text","rich_text": [{"type": "text","text": {"content": company,},}]},
                        "交易方式": {"type": "status","status": {"name": method,"color": color}},
                        "商品名称": {"type": "title","title": [{"type": "text","text": {"content": name},}]}
                        }
                    }
    return pay_json

def send_data(pay):
    error = []
    for i in pay.index:
        name = pay['name'][i]
        company = pay['company'][i]
        money = pay['money'][i]
        time = pay['time'][i]
        status = pay['status'][i]
        method = pay['method'][i]

        pay_json = get_json(name,company,money,time,status,method,)
    
        try:
            create_response = requests.post("https://api.notion.com/v1/pages", json=pay_json, headers=headers)
            if create_response.status_code != 200:
                error.append(i)
        
        except:
            error.append(i)

    return error

其中database_id值为你要导入的数据库的id值,可以在3.3步返回的结果中找到。

3.5 运行程序

if '__name__' == '__main__':
    alipay = alipay_method('alipay_record_20230329_2046_1.csv')
    weixing = weixing_method('微信支付账单(20221229-20230329).csv')
    pay = pd.concat([weixing,alipay]).reset_index(drop=True)
		pay.to('pay.csv')
    error = send_data(pay)
    print(error)

最后运行程序,打印的结果为因为各种原因导入失败的行索引,这个索引要在pay中寻找。

3.6 运行结果

Untitled 9.png

结尾

所有代码欢迎参考,在你使用时可能会出现各种各样的bug,这很正常。如果缺乏python基础,这个方法对你来说可能比较困难,你可以尝试一些低代码方案,例如 Zapier。

参考资料

用新开放的 Notion API,做一个支持微信/支付宝账单导入的记账工具 - 知乎 (zhihu.com)

Overview (notion.com)

SAP-ABAP:SAP基础数据校验工具开发系列博客(共5篇) 第一篇:需求梳理与架构设计:从零搭建SAP主数据校验能力底座 摘要: 本系列博客介绍SAP主数据校验工具的开发和设计,旨在解决物料、供应商、客户等主数据录入不规范、关联缺失和合规性问题。第一篇聚焦需求梳理与架构设计,提出分层技术架构(展示层、业务逻辑层、数据访问层),支持实时校验和批量校验两种模式,并详细说明规则引擎设计、SAP系统对接方案及权限管控逻辑。后续篇章将深入规则引擎实现、接口对接、结果可视化和性能优化,帮助构建集中式、可配置的主数据校验能力,提升SAP数据质量。 阅读详情

相关推荐

STM32F103C8T6+I2C+DMA读取陀螺仪模块JY901S(硬件I2C

说明:1.本实验代码适用移植一切stm32f1系列;2.本实验使用的是外设资源硬件I2C2;3.本实验运用的是DMA单次模式,如果需要DMA的循环模式,请移步我的另一篇文章;4.本文章不提供陀螺仪校准教学,并是在没有校准陀螺仪情况下读取数据;5.本文章是作者的学习记录及心得,如有不足,欢迎指正。 总结:亲测stm32f103c8t6最小系统板通过片上外设资源I2C配合DMA读去陀螺仪模块jy901s偏航角有效。

anquanyuanqqadsy的博客 6171

Notion API + Python实现阅读、影视数据可视化图表

本代码为创建Notion数据库(Database)可视化图标。

土豆~的博客 4017

使用kmplot在线进行生存分析

欢迎关注”生信修炼手册”!kmplot是一个生存分析的在线工具,最初是设计用来对肝癌中的miRNA进行生存分析,对应的文章发表在scientific reports上,链接如下https...

庐州月光的博客 1万+

探索Notion API:如何使用NotionDBLoader进行高效数据库管理

Notion API允许开发者与Notion的服务交互,以实现自动化任务和数据管理。通过API,你可以检索和操作数据库内容,实现更复杂的功能。由于某些地区的网络限制,建议开发者在使用Notion API时,考虑使用API代理服务,以确保稳定的访问。是一个专门用于加载Notion数据库内容的工具。它可以帮助我们轻松地从Notion数据库中提取数据。通过本文的介绍,相信你对如何使用与Notion API进行交互有了更清晰的认识。我们探讨了如何安装和配置环境,使用API加载数据,并提出了常见问题的解决方案。

stjklkjhgffxw的博客 746

高分创新点!Mamba+CNN结合,发顶会首选!

研究摘要 近期视觉领域涌现CNN与Mamba的融合架构,通过双分支设计互补优势。ConvMamba结合CNN的局部特征提取与Mamba的全局建模能力,在ImageNet分类任务中实现90.2%准确率,推理速度提升1.8倍。医学图像方向,PGM-UNet引入提示引导残差Mamba模块,结合多尺度空洞卷积与KANs,显著提升分割精度;遥感领域CM-UNet通过CSMamba块与多尺度注意力聚合模块,有效捕捉长距离依赖。这些工作表明,跨模态轻量化融合与注意力优化是未来重要方向。

m0_73122726的博客 1013

机器人动力学仿真软件:Webots_(14).机器人声音仿真

Webots 中的声音仿真主要通过Sound和两种节点来实现。Sound节点用于播放预定义的音频文件,而节点则允许在仿真过程中动态生成和播放声音。这些节点可以用于模拟机器人的语音输出、报警声、环境噪音等。以下是一个示例,展示如何在控制器代码中播放预定义的声音。// 控制器代码(.c) # include <webots/robot.h> # include <webots/sound.h> # define TIME_STEP 64 const char * sound_name = "sound";

kkchenjj的博客 1311

【亲测免费】 探索与使用 NotionAPI:从笔记到动态网站的桥梁

`notionapi` 是一个非官方的、用Go语言编写的[Notion.so](https://notion.so) API库,它提供了阅读和有限的写作功能。它的主要目的是将Notion页面的内容以结构化格式提取出来,进一步可转化为HTML等其他格式。虽然官方的Notion API目前仍处于测试阶段,但这个非官方的API在功能上更为强大。 ## 项目技术分析 `notionapi` 使用了高级...

gitblog_00034的博客 776

python-pandapower电力系统潮流计算(算例8:ieee33节点潮流计算))

python-pandapower电力系统潮流计算(算例8:ieee33节点潮流计算))

总裁余(余登武)博客 5033

推荐开源项目:`notionapi` - Go语言实现的Notion API客户端

推荐开源项目:notionapi - Go语言实现的Notion API客户端 在数字化工作和知识管理日益重要的今天,Notion 已经成为许多专业人士首选的工具,它集文档、数据库和任务管理于一身,提供了极佳的灵活性和可定制性。而这个名为 notionapi 的开源项目,则是开发者社区为Golang平台带来的一份厚礼,让你能更方便地集成Notion到你的应用中。 1、项目介绍 notionapi ...

gitblog_00065的博客 685

高渗透率光伏接入配电网的电压越限与谐波治理:基于VSG构网型控制与SVG+APF联合补偿的Simulink仿真研究

本文针对高渗透率光伏接入配电网引发的电压越限和谐波畸变问题,提出了一种分层递进的综合治理方案。通过建立IEEE 33节点配电网的Simulink仿真模型,首先验证了传统跟网型控制下光伏渗透率提高导致的电压越上限(最高达1.08 p.u.)和系统谐波畸变严重(THD达8.72%)问题。进而提出:1)将部分光伏逆变器改造为构网型VSG控制,利用其无功调压能力与虚拟阻抗技术实现本地治理;2)在关键节点加装SVG+APF联合补偿装置进行全局动态无功补偿与谐波滤除。仿真结果表明,该方案能将节点电压控制在0.94-1.

huanghm88的专栏 578

【PCL常用分割器】SACSegmentation

是一种基于采样一致性(Sample Consensus)的点云分割方法。它通过从点云中选取少量样本,拟合参数化几何模型(如平面、圆柱),并评估所有点与模型的误差一致性,最终选择内点集合最优的模型作为分割结果。与其他分割器(Region Growing、EuclideanClusterExtraction)不同,它不依赖空间连通性,而是依赖几何一致性。

yijiujiusan的博客 1309

Notion API 使用 获取block内容

目录背景准备工作获取block内容References 背景 最近在折腾vim,在~/.vimrc文件下有很多配置。但建docker容器的时候每次都需要复制一次到~/.vimrc,未免太麻烦了,所以我在想,如果可以有一个网页,我可以在Dockerfile里获取这个网页的内容,然后自动配置好vim,docker容器开箱即用多爽。而我刚好重度 准备工作 官方文档: Start building with the Notion API 先在下面这个网址创建机器人,也叫integrations,给机器人取个合适的名

yym68686 3198

点到面点云配准(Point To Plane)算法知识详解和详细推导,C++代码实现

点到面 ICP (Iterative Closest Point) 是在 3D 点云配准中常见的一种变体,通过最小化点到对应面(由法向量定义的局部平面)的距离来提高收敛速度和精度。

qq_36812406的博客 1809

从个人痛点出发:如何用Notion打造你的第一个MVP(附模板下载)

本文详细介绍了如何利用Notion这一全能型协作工具,从个人痛点出发构建最小化产品(MVP)。通过建立痛点日志、验证问题普遍性和评估解决可行性,非技术背景的创业者也能快速验证商业想法。文章包含实用的Notion数据库设计方法、用户体验优化技巧,并附赠可直接复用的实战模板,帮助读者高效打造首个MVP产品。

tgb34567890的博客 684

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

个人财务管理系统有源码怎么用_用TiddlyWiki替代Notion和EverNote作为个人知识管理系统

我的 Wiki:onetwo.ren/wiki注意:很多人说不懂技术配起来麻烦,所以我开发了一个零配置的 TiddlyWiki 桌面版 APP tiddly-gittly/TiddlyGit-Desktop,欢迎 star 和 watch (点 Watch Release Only 可以在我发布新版时在 Github 上收到推送提醒)目前已经不需要按着本教程的步骤来自己配置啦,用这个一键打开即可使...

weixin_39726971的博客 1377

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

终极Notion API入门教程:10个核心概念详解

Notion API是连接你的应用程序与Notion强大数据库功能的桥梁,而@notionhq/client则是官方提供的JavaScript客户端库。本教程将带你深入理解Notion API的核心概念,让你快速上手构建功能丰富的集成应用。🚀 ## 1. 认证机制:安全访问的基石 Notion API使用Bearer Token进行身份验证,支持集成令牌和OAuth访问令牌两种方式。无论你选

gitblog_00526的博客 853

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Notion API 开源项目常见问题解决方案

Notion API 是一个非官方的 Go 语言编写的 API,用于与 Notion 进行交互。它主要提供了读取功能,有限的写入能力,允许用户以结构化的格式检索 Notion 页面的内容。 ## 1. 项目基础介绍和主要编程语言 **项目名称**:Notion API **编程语言**:Go Notion API 是一个开源项目,旨在为开发者提供一种方便的方式来访问和操作 Notion 数...

gitblog_00046的博客 725

Notion API密钥配置与安全管理全指南

在数字化工作流日益依赖API集成的今天,Notion作为主流协作平台,其API密钥的安全管理已成为开发者不可忽视的关键环节。错误的密钥配置可能导致工作区数据泄露、第三方未授权访问,甚至商业敏感信息被篡改。据Notion官方安全报告显示,2024年因密钥管理不当引发的安全事件占API相关事故的67%,其中83%源于过度宽松的权限设置和密钥硬编码问题。 Notion API密钥不同于传统密码,它本质

gitblog_00769的博客 887

Notion API认证终极指南:5分钟快速接入与安全配置

想要让你的应用与Notion无缝集成吗?掌握Notion API认证机制是成功集成的关键第一步。无论是个人项目还是企业级应用,正确的Notion API认证配置都能为你的开发工作奠定坚实基础。本指南将详细介绍集成令牌和OAuth接入两种主要认证方式,帮助你快速上手并确保安全最佳实践。 ## 🔑 集成令牌认证:快速入门的最佳选择 集成令牌是Notion API认证中最简单直接的方式,特别适合个

gitblog_00871的博客 975

notion+excel自动创建表格| 了解了notion api

本文介绍了两个技术实现方案:1) 使用Python通过Notion API批量创建6个结构化的数据库(包括公司简介、行业图谱等),需先创建Notion集成并获取API密钥;2) 使用pandas生成包含7个工作表的财务模型Excel文件(含三大报表、DCF估值等模板)。两个方案均提供完整代码实现,重点说明了核心参数配置(如API token、页面ID)和数据结构定义方法。Notion方案强调数据库属性设置,Excel方案展示多表数据框架构建,均适用于自动化办公场景。

m0_57890928的博客 1409

探索Notion数据库功能:高效管理你的项目和数据

Notion以其灵活性和强大的集成功能而闻名,特别适用于团队协作和个人生产力工具。其数据库功能可以方便地与其他模块进行整合,从而形成一个无缝的工作流程。通过使用库中的加载器,我们可以轻松地将Notion数据库功能与Python代码集成。Notion API官方文档Langchain Community库文档。

qq_29929123的博客 770

Notero插件集成Notion的密钥配置指南

在使用Notero插件将Zotero文献管理工具与Notion集成时,许多用户在配置过程中会遇到需要填写"Integration Token"(集成令牌)的情况。这个令牌实际上是Notion提供的"Internal Integration Secret"(内部集成密钥),它是连接两个平台的关键凭证。 ## 密钥获取步骤 1. 首先需要在Notion中创建一个集成应用 2. 进入该集成的设置页面...

gitblog_07485的博客 646

notion记账模板

notion 的记账模板

m0_73518637的博客 796

02.【个人网站】如何在Next中集成Notion数据库

通过以上步骤,可以在Next.js项目中封装Notion API请求,并使用组件来渲染Notion页面。这样不仅简化了与Notion数据库的集成,还提高了代码的可维护性。

编译的阿喵 1746

NotionAPI 开源项目指南

本教程旨在指导您了解并初步使用 [NotionAPI](https://github.com/kjk/notionapi) 这一开源项目。我们将深入探讨其核心组件,包括项目目录结构、启动文件以及配置文件,帮助您快速上手。 ## 1. 项目目录结构及介绍 NotionAPI 的目录结构设计清晰,便于开发者理解和扩展。以下为主要的目录及文件说明: ```plaintext ├── notiona...

gitblog_00075的博客 528

Notion 插件开发入门

最近想要用 Notion 记笔记,奈何 Notion 的标签分类功能确实不太好用…… 看了看其它文章中配置多级标签的繁杂流程之后,我觉得还是写一个插件比较靠谱……本文主要介绍 Notion 简单的插件开发,编程语言使用 JavaScript,所以熟悉 JS 的同学应该很快就能上手。官网链接:https://developers.notion.com/docs/getting-started,英语好的同学自取。

Copcin的小站 3805
上一篇: SVD矩阵奇异值分解
下一篇: Kaggle 泰坦尼克号挑战赛
wiselisx
博客等级 码龄4年 98粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值