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

Chinaunix

標題: 拿一種數(shù)據(jù)類型去讀已知的另一種類型的數(shù)據(jù),只要格式語法合適就OK。 [打印本頁]

作者: yangchao1117    時間: 2015-07-23 11:58
標題: 拿一種數(shù)據(jù)類型去讀已知的另一種類型的數(shù)據(jù),只要格式語法合適就OK。
在請教你一個問題   因為現(xiàn)在程序的邏輯 想走個捷徑,拿一種數(shù)據(jù)類型去讀已知的另一種類型的數(shù)據(jù),主要還是想做分類處理 。該怎么寫

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

但是 有的用戶 它有兩種版本類型的數(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')]

求指導




   
作者: substr函數(shù)    時間: 2015-07-23 14:05

沒有深入學習過Python,我是這樣理解
拿一種數(shù)據(jù)類型去讀已知的另一種類型的數(shù)據(jù),主要還是 Dtype 格式不匹配
4 ITEMS:
  1. [('HeaderFlag', '<i4'), ('Version', '<i2'), ('id', <'i2'), ('DataPackageSize', '<i4')]
復制代碼
5 ITEMS: 不可能! 匹配
  1. [('HeaderFlag', '<i4'), ('Version', '<i2'), ('id', <'i2'), ('Item', 'i<2'), ('DataPackageSize', '<i4')]
復制代碼
如果我有理解你的問題?
  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 項, 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)

復制代碼

作者: yangchao1117    時間: 2015-07-23 14:50
你的大概意思是 先將一種類型的數(shù)據(jù)寫入文件,然后在用另一種類型的格式去讀。 是這意思吧。回復 2# substr函數(shù)


   
作者: yangchao1117    時間: 2015-07-23 14:51
我拿 freshNewData = numpy.array(TCMDataNewType, freshtmpData)    這段語句試了下過不去。 所以 我也準備試下你說的通過文件來轉(zhuǎn)換回復 2# substr函數(shù)


   
作者: substr函數(shù)    時間: 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: 讀一個項目 EX: DataPackageSize == 3.4
('n2246', 3.4)

3: 其他
作者: yangchao1117    時間: 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))
                下邊這步是將兩個版本的數(shù)據(jù) 分開放
                freshData = rawData[rawData['DataPackageSize'] == 844]#844
                freshtmpData = rawData[rawData['DataPackageSize'] == 850]#850
               
                下邊這步 是把850 按照對的數(shù)據(jù)格式 重新放到新的數(shù)據(jù)集
                freshNewData = numpy.array(freshtmpData, dtype=TCMDataNewType)


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

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


   
作者: substr函數(shù)    時間: 2015-07-23 17:06
回復 6# yangchao1117

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

學習了。多謝。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2