最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中sqllite插入numpy數組到數據庫的實現方法

 更新時間:2021年06月21日 16:44:00   作者:修煉之路  
本文給大家介紹python中sqllite插入numpy數組到數據庫的實現方法,在文章底部給大家提到了Python 操作sqlite數據庫及保存查詢numpy類型數據的實例代碼,需要的朋友參考下吧

sqllite里面并沒有與numpy的array類型對應的數據類型,通常我們都需要將數組轉換為text之后再插入到數據庫中,或者以blob類型來存儲數組數據,除此之外我們還有另一種方法,能夠讓我們直接以array來插入和查詢數據,實現代碼如下

import sqlite3
import numpy as np
import io

def adapt_array(arr):
    out = io.BytesIO()
    np.save(out, arr)
    out.seek(0)
    return sqlite3.Binary(out.read())

def convert_array(text):
    out = io.BytesIO(text)
    out.seek(0)
    return np.load(out)


# 當插入數據的時候將array轉換為text插入
sqlite3.register_adapter(np.ndarray, adapt_array)

# 當查詢數據的時候將text轉換為array
sqlite3.register_converter("array", convert_array)


#連接數據庫
con = sqlite3.connect("test.db", detect_types=sqlite3.PARSE_DECLTYPES)
cur = con.cursor()

#創(chuàng)建表
cur.execute("create table test (arr array)")

#插入數據
x = np.arange(12).reshape(2,6)
cur.execute("insert into test (arr) values (?)", (x, ))

#查詢數據
cur.execute("select arr from test")
data = cur.fetchone()[0]

print(data)
# [[ 0  1  2  3  4  5]
#  [ 6  7  8  9 10 11]]
print(type(data))
# <type 'numpy.ndarray'>

實例代碼看下Python 操作sqlite數據庫及保存查詢numpy類型數據

# -*- coding: utf-8 -*-
'''
Created on 2019年3月6日

@author: Administrator
'''
import sqlite3
import numpy as np
import io

def adapt_array(arr):

    out = io.BytesIO()
    np.save(out, arr)
    out.seek(0)
    return sqlite3.Binary(out.read())

def convert_array(text):
    out = io.BytesIO(text)
    out.seek(0)
    return np.load(out)

# 創(chuàng)建數據庫連接對象
conn = sqlite3.connect('sample_database.db', detect_types=sqlite3.PARSE_DECLTYPES)  # 連接到SQLite數據庫
'''
sqlite3.PARSE_DECLTYPES
本常量使用在函數connect()里,設置在關鍵字參數detect_types上面。表示在返回一行值時,是否分析這列值的數據類型定義。如果設置了本參數,就進行分析數據表列的類型,并返回此類型的對象,并不是返回字符串的形式。

sqlite3.PARSE_COLNAMES 
本常量使用在函數connect()里,設置在關鍵字參數detect_types上面。表示在返回一行值時,是否分析這列值的名稱。如果設置了本參數,就進行分析數據表列的名稱,并返回此類型的名稱
'''
# 參數:memory:來創(chuàng)建一個內存數據庫
# conn = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES)

# Converts np.array to TEXT when inserting
sqlite3.register_adapter(np.ndarray, adapt_array)

# Converts TEXT to np.array when selecting
sqlite3.register_converter("array", convert_array)

x = np.arange(12).reshape(2, 6)

# conn = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES)
cursor = conn.cursor()
# 創(chuàng)建數據庫表
cursor.execute("create table test (arr array)")
# 插入一行數據
cursor.execute("insert into test (arr) values (?)", (x,))
# 提交
conn.commit()

cursor.execute("select arr from test")
data = cursor.fetchone()[0]

print(data)
'''
[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]]
'''
print(type(data))
'''
<class 'numpy.ndarray'>
'''
cursor.close()  # 關閉Cursor
conn.close()  # 關閉數據庫

以上就是python中sqllite插入numpy數組到數據庫的實現方法的詳細內容,更多關于python numpy數組的資料請關注腳本之家其它相關文章!

相關文章

  • Python利用pandas計算多個CSV文件數據值的實例

    Python利用pandas計算多個CSV文件數據值的實例

    下面小編就為大家分享一篇Python利用pandas計算多個CSV文件數據值的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python上selenium的彈框操作實現

    python上selenium的彈框操作實現

    這篇文章主要介紹了python上selenium的彈框操作實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 13個最常用的Python深度學習庫介紹

    13個最常用的Python深度學習庫介紹

    這篇文章主要介紹了13個最常用的Python深度學習庫介紹,具有一定參考價值,需要的朋友可以參考下。
    2017-10-10
  • django框架基于queryset和雙下劃線的跨表查詢操作詳解

    django框架基于queryset和雙下劃線的跨表查詢操作詳解

    這篇文章主要介紹了django框架基于queryset和雙下劃線的跨表查詢操作,結合實例形式詳細分析了Django框架queryset和雙下劃線的跨表查詢相關實現技巧與操作注意事項,需要的朋友可以參考下
    2019-12-12
  • python requests庫的使用

    python requests庫的使用

    這篇文章主要介紹了python requests庫的使用,幫助大家更好的利用python進行爬蟲,感興趣的朋友可以了解下
    2021-01-01
  • python報錯TypeError: ‘NoneType‘ object is not subscriptable的解決方法

    python報錯TypeError: ‘NoneType‘ object is not subscriptable的解決

    這篇文章主要給大家介紹了關于python報錯TypeError: ‘NoneType‘ object is not subscriptable的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Python爬蟲必備技巧詳細總結

    Python爬蟲必備技巧詳細總結

    本篇文章介紹了我在爬蟲過程中總結的幾個必備技巧,都是經過實驗的,通讀本篇對大家的學習或工作具有一定的價值,需要的朋友可以參考下
    2021-10-10
  • python的pytest框架之命令行參數詳解(上)

    python的pytest框架之命令行參數詳解(上)

    這篇文章主要介紹了python的pytest框架之命令行參數詳解,pytest是一款強大的python自動化測試工具,可以勝任各種類型或者級別的軟件測試工作。pytest提供了豐富的功能,包括assert重寫,第三方插件,需要的朋友可以參考下
    2019-06-06
  • Python通過websocket與js客戶端通信示例分析

    Python通過websocket與js客戶端通信示例分析

    網站大多使用 HTTP 協議通信,而 HTTP 是無連接的協議。只有客戶端請求時,服務器端才能發(fā)出相應的應答, HTTP 請求的包也比較大,如果只是很小的數據通信,開銷過大。于是,我們可以使用 websocket 這個協議,用最小的開銷實現面向連接的通信。
    2014-06-06
  • Python實現疫情地圖可視化

    Python實現疫情地圖可視化

    這篇文章主要介紹了Python如何實現疫情地圖可視化,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-02-02

最新評論

呼图壁县| 乌鲁木齐市| 东台市| 惠安县| 苍溪县| 平安县| 曲松县| 平邑县| 文成县| 车致| 盐池县| 马尔康县| 马龙县| 汉寿县| 桦川县| 离岛区| 大理市| 曲阜市| 介休市| 柳江县| 忻州市| 贵州省| 敖汉旗| 高州市| 克什克腾旗| 兰溪市| 尼勒克县| 内乡县| 乌什县| 临海市| 仁怀市| 平山县| 永嘉县| 内黄县| 香格里拉县| 安阳市| 梓潼县| 会宁县| 天全县| 石河子市| 广宗县|