• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            huyutian

            他強由他強,清風拂山崗;他橫由他橫,明月照大江。他自狠來他自惡,我自一口真氣足

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              20 隨筆 :: 47 文章 :: 22 評論 :: 0 Trackbacks

            2015年12月8日 #

            HDF5格式非常適合保存層次化的結構數據集合。python下有pytable和h5py兩種接口方式支持存儲HDF5文件,pandas就支持直接讀寫pytable。保存數據量不太大(一般控制在2GB以內)的日線分鐘線數據用h5格式還是很方便的。pandas在讀取h5文件時,可以像數據庫一樣進行條件檢索。詳細資料可參考pandas.HDFStore的where參數。要使column可以在where語句中查詢,保存數據文件時需要增加index或者明確指定data_columns。但是指定過多的column為data_columns將會使得性能下降。
            網上搜索后找到了關于pandas存儲HDF5文件性能優化的一些建議,原文在這里

            1.不使用index,創建出來的HDF文件尺寸會小一些,速度也快一些。
            2.通過store.create_table_index() 創建索引,對data_columns進行篩選時的速度沒有什么影響。
            3.保存HDF時使用壓縮選項對數據的讀取速度影響很小,但是壓縮后,文件尺寸會顯著的變小。
            使用pandas讀寫hdf5文件示例如下
            #write
            store=pd.HDFStore("./data/Minutes.h5","a", complevel=9, complib='zlib')
            store.put("Year2015", dfMinutes, format="table", append=True, data_columns=['dt','code'])
            # read
            store=pd.HDFStore("./data/Minutes.h5","r")
            store.select("Year2015", where=['dt<Timestamp("2015-01-07")','code=="000570"'])
            posted @ 2015-12-08 16:38 胡雨田 閱讀(11914) | 評論 (0)編輯 收藏

            2015年3月1日 #

            終于搞清楚了為啥我的Ec2108在/etc/init.d/rcS中設置的PATH,啟動后莫名的被修改了,原來是/etc/init.d/profile中又把PATH重新設置了,原因記錄下來。
            【本文為OurUnix--Linux's境原創,轉載請注明源地址www.ourunix.org】
            這兩天在做根文件系統的時候,注意到/linuxrc、/etc/init.d/rcS、/etc/init.d/rc.local、/etc/init.d/profile這幾個文件尤其重要,遂把他們記載下來了。
            /Linuxrc 執行init 進程初始化文件。主要工作是把已安裝根文件系統中的/etc 掛載為ramfs,并拷貝/mnt/etc/目錄下所有文件到/etc,這里存放系統啟動后的許多特殊文件;接著Linuxrc 重新構建文件分配表inittab;之后執行系統初始化進程/sbin/init。
            Linuxrc
            #!/bin/sh
            echo "mount /etc as ramfs"
            /bin/mount -n -t ramfs ramfs /etc
            /bin/cp -a /mnt/etc/* /etc
            echo "re-create the /etc/mtab entries"
            # re-create the /etc/mtab entries
            /bin/mount -f -t cramfs -o remount,ro /dev/mtdblock/3 /
            /bin/mount -f -t ramfs ramfs /etc
            exec /sbin/init
            etc/init.d/rcS 完成各個文件系統的 mount,再執行/usr/etc/rc.local;通過rcS 可以調用 dhcp 程序配置網絡。rcS 執行完了以后,init 就會在一個 console 上,按照 inittab 的指示開一個 shell,或者是開 getty + login,這樣用戶就會看到提示輸入用戶名的提示符。
            rc.local
            /usr/etc/
            #!/bin/sh
            . /usr/etc/profile
            echo "HELLO! Embest"
            echo "ifconfig eth0 192.168.0.10"
            ifconfig eth0 192.168.0.10 #可自行配置開發板IP
            /usr/etc/rc.local 這是被init.d/rcS 文件調用執行的特殊文件,與Linux 系統硬件平臺相關,如安裝核心模塊、進行網絡配置、運行應用程序、啟動圖形界面等。
            rcS
            /mnt/etc/init.
            d/
            #!/bin/sh
            /bin/mount -a
            exec /usr/etc/rc.local
            /usr/etc/profile 執行該文件配置需要的環境變量等。
            Profile
            /usr/etc/
            #!/bin/sh
            PATH=/bin:/sbin:/usr/bin:/usr/sbin ?? 設置命令工具所在位置
            posted @ 2015-03-01 19:57 胡雨田 閱讀(295) | 評論 (0)編輯 收藏

                 最近在寫sqilte語句更新數據時發現個問題,那就是Replace into執行時居然會把id主鍵修改了。google了一下,原來Replace的原理是找到待修改的記錄后,整條刪除,然后插入新記錄。所以這個過程中,默認的id主鍵會被修改。有時候這種結果并不是我們所想要的,應該如何解決呢?
            http://stackoverflow.com/questions/2717590/sqlite-upsert-on-duplicate-key-update這里有很好的討論。
            個人覺得以下方法最好,摘抄如下。
             INSERT OR REPLACE INTO page (id, name, title, content, author)
             SELECT old.id, new.name, new.title, old.content, new.author
             FROM ( SELECT
                 "about"           AS name,
                 "About this site" AS title,
                 42                AS author
             ) AS new
             LEFT JOIN (
                 SELECT id, name, content
                 FROM page WHERE name= "about"
             ) AS old ON new.name = old.name;
            posted @ 2015-03-01 18:12 胡雨田 閱讀(570) | 評論 (0)編輯 收藏

                 最近在寫sqilte語句更新數據時發現個問題,那就是Replace into執行時居然會把id主鍵修改了。google了一下,原來Replace的原理是找到待修改的記錄后,整條刪除,然后插入新記錄。所以這個過程中,默認的id主鍵會被修改。有時候這種結果并不是我們所想要的,應該如何解決呢?
            http://stackoverflow.com/questions/2717590/sqlite-upsert-on-duplicate-key-update這里有很好的討論。
            個人覺得以下方法最好,摘抄如下。
             INSERT OR REPLACE INTO page (id, name, title, content, author)
             SELECT old.id, new.name, new.title, old.content, new.author
             FROM ( SELECT
                 "about"           AS name,
                 "About this site" AS title,
                 42                AS author
             ) AS new
             LEFT JOIN (
                 SELECT id, name, content
                 FROM page WHERE name= "about"
             ) AS old ON new.name = old.name;
            posted @ 2015-03-01 18:11 胡雨田 閱讀(3386) | 評論 (0)編輯 收藏

            2015年2月22日 #

            ubuntu下安裝vmware tools問題
            VMware Tools installation cannot be started manually while Easy Install is in progress.

            vmware-install.pl
            我在虛擬機安裝Ubuntu時,無法自動安裝VMware Tools,不能全屏顯示。
            網上搜索解決辦法如下,未成功。
            在開啟虛擬機操作系統的情況下,在虛擬機設置中更改floppy為auto detect。然后點擊菜單中的安裝VMWare Tools,虛擬操作系統中的光驅里就會有VMWare Tools的安裝程序了,自行安裝即可
            最終解決辦法:
            在VMware目錄(win7下為
            C:\Program Files (x86)\VMware\VMware Workstation)下找到linux.iso掛接到Ubuntu虛擬機光驅。在Ubuntu虛擬機中解壓光盤安裝包,啟動終端程序,進入VMware-tools-distrib目錄,運行sudo perl vmware-install.pl

            debian下安裝vmware tools問題
            debian下按照上面的方法安裝虛擬機是不能成功的,會顯示錯誤
            "The path "usr/bin/gcc" is not a valid path to the gcc binary path" 
            "The path "" is not a valid path to the 2.6.32-5-686 kernel header"
            原因是vmware tools需要搜素gcc編譯器和linux內核版本。解決辦法是
            uname -r
            顯示2.6.32-5-686
            然后安裝頭文件
            apt-get install linux-headers-2.6.32-5-686
            安裝編譯環境
            apt-get install make
            apt-get install build-essential
            然后再重復上面Ubuntu的安裝過程
            先用df命令確定光盤mount位置

            我的光盤位置/media/cdrom0
            cd /tmp
            tar zxpf /mnt/cdrom/VMwareTools-8.8.0-47126.tar.gz
            cd vmware-tools-distrib
            ./vmware-install.pl
            然后安裝時一路回車,使用默認選項就ok
            posted @ 2015-02-22 12:28 胡雨田 閱讀(805) | 評論 (0)編輯 收藏

            2014年12月28日 #

            內聯函數能夠提高程序性能這是大家都知道的。但內聯函數應該怎樣申明和定義呢?今天我就遇到一個"unresolved external" 錯誤。google后找到答案。

            t's imperative that the function's definition (the part between the {...}) be placed in a header file, unless the function is used only in a single .cpp file. In particular, if you put the inline function's definition into a .cpp file and you call it from some other .cpp file, you'll get an "unresolved external" error from the linker.

            內聯函數體必須定義在頭文件中,除非你的程序只有單一cpp文件。如果你在一個cpp文件中定義內聯函數體,而要從其他cpp文件訪問該內聯函數,你就會在link時遇到"unresolved external" 錯誤。原文鏈接看這里
            posted @ 2014-12-28 16:04 胡雨田 閱讀(442) | 評論 (0)編輯 收藏

            2014年2月4日 #

            最近重新安裝系統,選擇自定義安裝office,本意是想盡量精簡掉一些用不上的內容,結果不小心給自己添麻煩了。
            安裝完后,用WORD打開文檔時,總是提示:此文檔有宏,該應用程序的宏語言支持功能被取消。功能要求的VBA不可用。如果關閉文檔退出還會提示:
            所做更改會影響共用模板NORMAL
            網上查找了一番, 解決辦法有兩個:
            1.打開文檔時,進入“開始”-“選項”-“加載項”-“管理COM加載項”,將三個可用加載項前的打勾去掉。
            2.用office安裝盤重新安裝-“添加/刪除功能”-“自定義安裝”-“OFFICE 共享功能”下,安裝“VBA數字工程證書”和“Visual Basic for Applications”
             方法1臨時用用可以,但解決不了問題。最后還是選修復安裝搞定。
            posted @ 2014-02-04 08:35 胡雨田 閱讀(1280) | 評論 (0)編輯 收藏

            2013年10月8日 #

            我自己使用已經有一陣子了,感覺非常不錯。MadEdit是一款用wxWidgets和c++寫的開源軟件,可以跨平臺工作。
            主要特點:
            1.免費、開源、小巧,精致,綠色便攜
            2.支持16進制編輯,這個用于分析一個未知文件的文件存儲結構,非常方便。對程序調試、底層開發的人非常適合。以前大家都用ultraedit,但隨著版本的升級,變得越來越龐大,已經不適合我這種偶爾玩玩編程的人了。
            3.支持c/c++/java/html/python等數十種語言語法高亮度顯示。那么如果你時不時的需要寫寫小程序,那么它就非常適合你。
            4.支持正則表達式。最近突然覺得正則表達式在查找替換一些特使場合還是非常好用的,效率非常高。一般并不需要掌握復雜的正則表達式規則。
            比如,我有一個大文件有很多處"01.","02.","03."之類文本的要刪除,這時候[0-9][0-9]\.就能快速搞定。
            5.自身支持設置添加到資源管理器右鍵菜單中去,windows系統用戶的最愛。
            6.中文/英文界面隨意切換,支持gbk/unicode編碼格式,還內置繁簡轉換功能。這這簡直就是為中國人專用的編輯器么。完全可以把Notepad,Note++之類仍掉了。
            用一句時髦話形容:低調奢華有內涵,你值得擁有。
            唯一的缺點就是目前原作者很久沒有更新程序了,但好消息是,有幾個愛好者開源了另一個給madEdit打補丁的項目,可以去看看。
            madEdit的原網址在這里http://sourceforge.net/projects/madedit/
            這里是愛好者修改的打補丁版本,注意也是開源的喲。https://code.google.com/p/madedit-pv/
            從后一個網址下載時,MadEdit20130705.7z是單個主程序,不需安裝可以直接運行。中文用戶建議最好再下載一個中文化配置文件syntax_locale.7z,解壓到同一個目錄中即可。
            posted @ 2013-10-08 20:30 胡雨田 閱讀(6251) | 評論 (0)編輯 收藏

            2012年10月6日 #

            以前用visual studio 2008時也碰到過類似問題,問題產生的原因就是由于一個Solution下單多個Project是分開編譯的,主項目和子項目的pdb文件名相同(默認都是vc90.pdb或vc100.pdb)從而造成沖突。這個問題對程序的執行不會產生影響,但會導致丟失部分調試信息。
            在網上搜到解決辦法,修改pdb文件設置的路徑和名稱。轉貼于此。

            Project Configuration Properties -> C/C++ -> Output Files
            Program Database File

            This name, e.g. $(IntDir)\vc90.pdb, is embedded into the object file and it should be the same as the one in

            Project Configuration Properties -> Linker -> Debugging
            Generate Program Database File

            This is, e.g. $(TargetDir)$(TargetName).pdb

            Now the object file contain the path where the library is located, too.


            由此引出一個話題,那就是對于分開編譯的多個Project組成的一個復雜的Solution如何組織目錄文檔結構,既保持各個Project相對獨立,同時又保證整個Solution調試信息的完整性。我的解決辦法是:首先肯定要像上面一樣修改各單獨Project的pdb的路徑和文件名。其次在復制Project編譯結果到Solution的Lib時,要把所有的obj文件和pdb文件一起copy過來。要注意單獨的Project編譯的obj文件和pdb文件路徑最好相同,而且使用相對路徑"..\"和“.\"打頭。文件復制工作可以寫成一個批處理,放入主Solution的Pre-Build Event中去。

            posted @ 2012-10-06 23:27 胡雨田 閱讀(22070) | 評論 (2)編輯 收藏

            2012年4月8日 #

            折騰了好久才發現開源庫TA-LIB關于很多指標計算都與國內通用股軟不太一樣。剛開始還以為是自己的程序寫錯了,汗一個。
            比如ATR的計算,國內一般是取TR(真實波幅)的簡單平均。而TA-LIB則是采取類似EMA平均一樣的方法求TR的平均值。
            再如MACD(12,26,9)的計算,TA-LIB對于前33個初始值是未定義的,國內股軟計算初始值時則是根據已有的幾根bar計算的
            平均值比照MACD公式進行換算的。自己利用TA-LIB庫開發股軟時一定要對比一下指標的計算異同,否則浪費時間就劃不來了。
            posted @ 2012-04-08 11:31 胡雨田 閱讀(8832) | 評論 (1)編輯 收藏

            僅列出標題  下一頁
            国产91久久精品一区二区| 精品熟女少妇a∨免费久久| 国产精品丝袜久久久久久不卡| 欧美久久精品一级c片片| 伊人久久大香线蕉综合5g| 亚洲人成网亚洲欧洲无码久久| 国产精品伦理久久久久久| 久久久99精品成人片中文字幕| 亚洲中文字幕无码久久2020| 久久久久久久亚洲Av无码| 色99久久久久高潮综合影院| 国产国产成人久久精品| 国产A三级久久精品| 久久精品国产清自在天天线| 欧美噜噜久久久XXX| 7777精品久久久大香线蕉| 久久精品国产亚洲麻豆| 久久精品国产一区| 国产亚洲美女精品久久久2020| 国产精品嫩草影院久久| 久久男人Av资源网站无码软件| 午夜精品久久久久久久无码| 国产成人精品久久综合 | 国产福利电影一区二区三区久久久久成人精品综合 | 久久精品国产精品亚洲| 久久精品a亚洲国产v高清不卡| 久久久精品波多野结衣| 伊人久久综在合线亚洲2019| 久久青青草原综合伊人| 久久精品亚洲中文字幕无码麻豆 | 久久婷婷五月综合97色一本一本 | 性做久久久久久久| 久久毛片一区二区| 日韩乱码人妻无码中文字幕久久 | 久久久久久国产精品无码超碰| 婷婷久久五月天| 久久综合色老色| 亚洲精品乱码久久久久久蜜桃不卡| 久久久无码精品亚洲日韩京东传媒| 久久久国产乱子伦精品作者| 97精品伊人久久久大香线蕉 |