亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2504 | 回復(fù): 6
打印 上一主題 下一主題

拿一種數(shù)據(jù)類型去讀已知的另一種類型的數(shù)據(jù),只要格式語法合適就OK。 [復(fù)制鏈接]

論壇徽章:
1
IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-09-15 06:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2015-07-23 11:58 |只看該作者 |倒序?yàn)g覽
在請(qǐng)教你一個(gè)問題   因?yàn)楝F(xiàn)在程序的邏輯 想走個(gè)捷徑,拿一種數(shù)據(jù)類型去讀已知的另一種類型的數(shù)據(jù),主要還是想做分類處理 。該怎么寫

代碼如下
TCMDataType = numpy.dtype([('HeaderFlag', '<i4'),
                           ('Version', '<i2'),
                           ('id', <'i2'),
                           ('DataPackageSize', '<i4')]
程序先是按條件用戶  id 合并了二進(jìn)制文件, 并錄入 到文本里

但是 有的用戶 它有兩種版本類型的數(shù)據(jù), 我想先按照版本 分開。 然后 在重新組裝數(shù)據(jù)。
rawData=numpy.append(rawData, numpy.fromfile(file_name, dtype=TCMDataType));

fresh = rawData[rawData['DataPackageSize'] == 844]        #844版本數(shù)據(jù)集
freshNew = rawData[rawData['DataPackageSize'] == 850]   #850版本數(shù)據(jù)集


現(xiàn)在想拿TCMNewDataType 讀freshNew 該怎么寫
TCMNewDataType = numpy.dtype([('HeaderFlag', '<i4'),
                           ('Version', '<i2'),
                           ('id', <'i2'),
                           ('Item', 'i<2'),
                           ('DataPackageSize', '<i4')]

求指導(dǎo)




   

論壇徽章:
26
2015亞冠之胡齊斯坦鋼鐵
日期:2015-06-25 21:40:202015亞冠之柏斯波利斯
日期:2015-08-31 17:03:192015亞冠之柏斯波利斯
日期:2015-11-07 13:10:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-11-10 06:20:00每日論壇發(fā)貼之星
日期:2015-11-10 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-11-26 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-02 06:20:00黃金圣斗士
日期:2015-12-07 17:57:4615-16賽季CBA聯(lián)賽之天津
日期:2015-12-23 18:34:14程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-02 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-06 06:20:00每日論壇發(fā)貼之星
日期:2016-01-06 06:20:00
2 [報(bào)告]
發(fā)表于 2015-07-23 14:05 |只看該作者

沒有深入學(xué)習(xí)過Python,我是這樣理解
拿一種數(shù)據(jù)類型去讀已知的另一種類型的數(shù)據(jù),主要還是 Dtype 格式不匹配
4 ITEMS:
  1. [('HeaderFlag', '<i4'), ('Version', '<i2'), ('id', <'i2'), ('DataPackageSize', '<i4')]
復(fù)制代碼
5 ITEMS: 不可能! 匹配
  1. [('HeaderFlag', '<i4'), ('Version', '<i2'), ('id', <'i2'), ('Item', 'i<2'), ('DataPackageSize', '<i4')]
復(fù)制代碼
如果我有理解你的問題?
  1. #!/usr/bin/python2
  2. # coding: utf-8

  3. import numpy as NP

  4. TYPE = NP.dtype([('name1', '|S6'), ('DataPackageSize', '<f8')])
  5. LIST = [('n1234', 1.2), ('n2246', 3.4), ]
  6. ARRY = NP.array(LIST, dtype=TYPE)

  7. print ARRY['DataPackageSize']
  8. ARRY.tofile("file_name")

  9. # 是方法 [不是捷徑!!] [color=Red](READ ALL SELECT ONE[/color])
  10. def GET(FILE, TYPE, ITEM, SIZE):
  11.     A = NP.fromfile(FILE, dtype=TYPE)
  12.     for I, S in enumerate(A[ITEM]):
  13.         if S == SIZE: return A[I]

  14. # IF
  15. V3DOT4 = GET("file_name", TYPE, 'DataPackageSize', 3.4)
  16. print V3DOT4    # ('n2246', 3.4

  17. # OR  IF
  18. V1DOT2 = GET("file_name", TYPE, 'DataPackageSize', 1.2)
  19. print V1DOT2    # ('n1234', 1.2)

  20. # 捷徑 => fromfile(...count=1) count => Number of items to read
  21. # freshNew [color=Red]AS FIRST ITEM[/color]
  22. # 1.2
  23. # LIST = [('n1234', 1.2), ('n2246', 3.4), ]

  24. def GET_DataPackageSize_NEW(FILE, TYPE):
  25.     # 只讀 1 項(xiàng), WHEN freshNew AS FIRST ITEM
  26.     A = NP.fromfile(FILE, dtype=TYPE, count=1)
  27.     return A[0]


  28. V1DOT2 = GET_DataPackageSize_NEW("file_name", TYPE)
  29. print V1DOT2    # ('n1234', 1.2)

復(fù)制代碼

論壇徽章:
1
IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-09-15 06:20:00
3 [報(bào)告]
發(fā)表于 2015-07-23 14:50 |只看該作者
你的大概意思是 先將一種類型的數(shù)據(jù)寫入文件,然后在用另一種類型的格式去讀。 是這意思吧。回復(fù) 2# substr函數(shù)


   

論壇徽章:
1
IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-09-15 06:20:00
4 [報(bào)告]
發(fā)表于 2015-07-23 14:51 |只看該作者
我拿 freshNewData = numpy.array(TCMDataNewType, freshtmpData)    這段語句試了下過不去。 所以 我也準(zhǔn)備試下你說的通過文件來轉(zhuǎn)換回復(fù) 2# substr函數(shù)


   

論壇徽章:
26
2015亞冠之胡齊斯坦鋼鐵
日期:2015-06-25 21:40:202015亞冠之柏斯波利斯
日期:2015-08-31 17:03:192015亞冠之柏斯波利斯
日期:2015-11-07 13:10:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-11-10 06:20:00每日論壇發(fā)貼之星
日期:2015-11-10 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-11-26 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-02 06:20:00黃金圣斗士
日期:2015-12-07 17:57:4615-16賽季CBA聯(lián)賽之天津
日期:2015-12-23 18:34:14程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-02 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-06 06:20:00每日論壇發(fā)貼之星
日期:2016-01-06 06:20:00
5 [報(bào)告]
發(fā)表于 2015-07-23 15:19 |只看該作者

讓我們回到問題的開始

TYPE = numpy.dtype([('HeaderFlag', '<i4'),
                           ('Version', '<i2'),
                           ('id', <'i2'),
                           ('DataPackageSize', '<i4')]
FILE: 它有兩種版本類型的數(shù)據(jù)

DataPackageSize: 1.2, 3.4


然后
你想要什么?

1: 分類處理

例如: [('n1234', 1.2), ('n2246', 3.4), ]

分類出 =>
('n1234', 1.2)
('n2246', 3.4)

2: 讀一個(gè)項(xiàng)目 EX: DataPackageSize == 3.4
('n2246', 3.4)

3: 其他

論壇徽章:
1
IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-09-15 06:20:00
6 [報(bào)告]
發(fā)表于 2015-07-23 16:10 |只看該作者
本帖最后由 yangchao1117 于 2015-07-23 16:16 編輯

是轉(zhuǎn)換類型  附上代碼

             for file_name in file_names:
                    rawData = numpy.append(
                        rawData, numpy.fromfile(file_name, dtype=TCMDataType))
                下邊這步是將兩個(gè)版本的數(shù)據(jù) 分開放
                freshData = rawData[rawData['DataPackageSize'] == 844]#844
                freshtmpData = rawData[rawData['DataPackageSize'] == 850]#850
               
                下邊這步 是把850 按照對(duì)的數(shù)據(jù)格式 重新放到新的數(shù)據(jù)集
                freshNewData = numpy.array(freshtmpData, dtype=TCMDataNewType)


還是 你的那種寫法。是剛才 寫差了。這么寫可以得,沒有問題。我已經(jīng)再用了。

可能 是我表述的太多了,沒說明白。
回復(fù) 5# substr函數(shù)


   

論壇徽章:
26
2015亞冠之胡齊斯坦鋼鐵
日期:2015-06-25 21:40:202015亞冠之柏斯波利斯
日期:2015-08-31 17:03:192015亞冠之柏斯波利斯
日期:2015-11-07 13:10:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-11-10 06:20:00每日論壇發(fā)貼之星
日期:2015-11-10 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-11-26 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-02 06:20:00黃金圣斗士
日期:2015-12-07 17:57:4615-16賽季CBA聯(lián)賽之天津
日期:2015-12-23 18:34:14程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-02 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-06 06:20:00每日論壇發(fā)貼之星
日期:2016-01-06 06:20:00
7 [報(bào)告]
發(fā)表于 2015-07-23 17:06 |只看該作者
回復(fù) 6# yangchao1117

                下邊這步 是把850 按照對(duì)的數(shù)據(jù)格式 重新放到新的數(shù)據(jù)集
                freshNewData = numpy.array(freshtmpData, dtype=TCMDataNewType)

學(xué)習(xí)了。多謝。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP