{"id":128481,"date":"2020-06-23T13:32:31","date_gmt":"2020-06-23T05:32:31","guid":{"rendered":"http:\/\/4563.org\/?p=128481"},"modified":"2020-06-23T13:32:31","modified_gmt":"2020-06-23T05:32:31","slug":"python-%e5%bf%ab%e9%80%9f%e8%ae%a1%e7%ae%97%e5%a2%9e%e9%87%8f%e7%9a%84%e6%96%b9%e6%b3%95","status":"publish","type":"post","link":"http:\/\/4563.org\/?p=128481","title":{"rendered":"Python \u5feb\u901f\u8ba1\u7b97\u589e\u91cf\u7684\u65b9\u6cd5"},"content":{"rendered":"<div>\n<div>\n<div>\n<h1>                  Python \u5feb\u901f\u8ba1\u7b97\u589e\u91cf\u7684\u65b9\u6cd5               <\/h1>\n<p> <\/p>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : JCZ2MkKb5S8ZX9pq <\/span>  <span><i><\/i> 68<\/span> <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div isfirst=\"1\"> <\/p>\n<p>\u5047\u8bbe\u8868<\/p>\n<pre><code>data = [   ['20:00', 100],   ['20:10', 130],   ['20:20', 190],   ... ] <\/code><\/pre>\n<p>\u671f\u671b\u7ed3\u679c\uff0c\u53ea\u7edf\u8ba1\u589e\u91cf\uff1a<\/p>\n<pre><code>data = [   ['20:00', 100],   ['20:10', 30],   ['20:20', 60],   ... ] <\/code><\/pre>\n<p>\u6b63\u5e38\u5199\u6cd5\u6211\u4f1a\uff0c\u6c42\u4e00\u4e2a\u6700 pythonic \u7684\u641e\u6cd5\u3002<br \/> \u5370\u8c61\u4e2d\u597d\u50cf map \u8fd8\u662f reduce \u5565\u7684\u80fd\u641e\u8fd9\u4e2a\uff0c\u4f46\u662f py3 \u597d\u50cf\u8981\u5bfc\u5165\u6a21\u5757\uff0c\u6709\u70b9\u60f3\u4e0d\u8d77\u6765\u4e86\u3002<br \/> \u8c01\u7ed9\u6307\u70b9\u4e00\u4e0b\u3002<\/p>\n<\/p><\/div>\n<div> <b>\u5927\u4f6c\u6709\u8a71\u8aaa<\/b> (<span>32<\/span>)        <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<ul>\n<li data-pid=\"44238\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : necomancer <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             In [1]: [data[0], list(map(lambda x, y: [x[0],y[1]-x[1]], *zip(data[:-1],data[1:])))] <br \/>Out[1]: [[&#8217;20:00&#8242;, 100], [[&#8217;20:00&#8242;, 30], [&#8217;20:10&#8242;, 60]]]                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44239\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : watsy0007 <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             &#8220;`python<br \/>fst = lambda x: x[0]<br \/>sec = lambda x: x[1]<br \/>[[fst(item), sec(item) &#8211; (0 if idx == 0 else sec(data[idx-1]))] for idx, item in enumerate(data)]<br \/>&#8220;`                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44240\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : necomancer <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             sorry<\/p>\n<p>[data[0]] + list(map(lambda x, y: [x[0],y[1]-x[1]], *zip(data[:-1],data[1:])))                                                            <\/p><\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44241\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : necomancer <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u518d sorry\uff0c\u6ca1\u770b\u6e05\u9898\u2026\u2026<br \/>In [3]: [data[0]] + list(map(lambda x, y: [y[0],y[1]-x[1]], *zip(data[:-1],data[1:]))) <br \/>Out[3]: [[&#8217;20:00&#8242;, 100], [&#8217;20:10&#8242;, 30], [&#8217;20:20&#8242;, 60]]                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44242\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : JCZ2MkKb5S8ZX9pq <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @necomancer \u597d\u50cf\u662f zip \u8fd9\u6b65\u6709\u70b9\u95ee\u9898\uff0cpy3.7\u3002<br \/>TypeError: &lt;lambda&gt;() takes 2 positional arguments but 55 were given<br \/>\u8fd8\u662f map \u7684\u8c03\u7528\u65b9\u6cd5\u95ee\u9898\uff1f<br \/>\u6211\u8981\u8bd5\u8bd5\uff0c\u8fd9\u4e24\u4e2a\u65b9\u6cd5\u4e0d\u5927\u7528\u5230\u3002                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44243\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : JCZ2MkKb5S8ZX9pq <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u987a\u4fbf\u7ed9\u4e00\u4e32\u6d4b\u8bd5\u6570\u636e\u597d\u4e86\uff0c\u91cc\u9762\u662f\u6392\u5e8f\u540e\u7684 tuple\u3002<br \/>[(&#8216;2019-12-09 19:40:03&#8217;, 412), (&#8216;2019-12-09 20:10:58&#8217;, 4136), (&#8216;2019-12-09 20:41:00&#8217;, 6634), (&#8216;2019-12-09 21:11:22&#8217;, 9090), (&#8216;2019-12-09 21:41:23&#8217;, 11636), (&#8216;2019-12-09 22:11:27&#8217;, 14597), (&#8216;2019-12-09 22:41:32&#8217;, 17506), (&#8216;2019-12-09 23:11:43&#8217;, 20315), (&#8216;2019-12-09 23:41:44&#8217;, 22926), (&#8216;2019-12-10 00:11:46&#8217;, 24749), (&#8216;2019-12-10 00:41:55&#8217;, 26133), (&#8216;2019-12-10 01:11:58&#8217;, 27021), (&#8216;2019-12-10 01:42:06&#8217;, 27574), (&#8216;2019-12-10 03:08:38&#8217;, 28333), (&#8216;2019-12-10 03:38:48&#8217;, 28435), (&#8216;2019-12-10 04:08:58&#8217;, 28527), (&#8216;2019-12-10 04:39:01&#8217;, 28608), (&#8216;2019-12-10 05:09:23&#8217;, 28680), (&#8216;2019-12-10 05:39:32&#8217;, 28754), (&#8216;2019-12-10 06:09:46&#8217;, 28841), (&#8216;2019-12-10 06:39:51&#8217;, 29006), (&#8216;2019-12-10 07:09:57&#8217;, 29320), (&#8216;2019-12-10 07:40:05&#8217;, 29755), (&#8216;2019-12-10 08:10:51&#8217;, 30309), (&#8216;2019-12-10 08:40:59&#8217;, 30902), (&#8216;2019-12-10 09:11:08&#8217;, 31454), (&#8216;2019-12-10 09:41:21&#8217;, 31977), (&#8216;2019-12-10 10:11:48&#8217;, 32555), (&#8216;2019-12-10 10:42:04&#8217;, 33137), (&#8216;2019-12-10 11:12:30&#8217;, 33749), (&#8216;2019-12-10 11:42:45&#8217;, 34279), (&#8216;2019-12-10 12:12:55&#8217;, 34964), (&#8216;2019-12-10 12:43:05&#8217;, 35904), (&#8216;2019-12-10 13:13:27&#8217;, 36774), (&#8216;2019-12-10 13:43:49&#8217;, 37375), (&#8216;2019-12-10 14:13:56&#8217;, 37803), (&#8216;2019-12-10 14:44:08&#8217;, 38222), (&#8216;2019-12-10 15:14:40&#8217;, 38589), (&#8216;2019-12-10 15:44:51&#8217;, 38937), (&#8216;2019-12-10 16:15:04&#8217;, 39311), (&#8216;2019-12-10 16:45:37&#8217;, 39707), (&#8216;2019-12-10 17:15:53&#8217;, 40081), (&#8216;2019-12-10 17:45:55&#8217;, 40520), (&#8216;2019-12-10 18:16:05&#8217;, 40991), (&#8216;2019-12-10 18:46:48&#8217;, 41481), (&#8216;2019-12-10 19:17:01&#8217;, 41999), (&#8216;2019-12-11 03:23:55&#8217;, 47926), (&#8216;2019-12-11 05:24:01&#8217;, 48053), (&#8216;2019-12-11 07:24:05&#8217;, 48245), (&#8216;2019-12-11 09:24:18&#8217;, 48742), (&#8216;2019-12-11 11:24:28&#8217;, 49315), (&#8216;2019-12-11 13:24:41&#8217;, 50181), (&#8216;2019-12-11 15:24:51&#8217;, 50767), (&#8216;2019-12-11 17:24:52&#8217;, 51305), (&#8216;2019-12-11 19:24:54&#8217;, 52048), (&#8216;2019-12-11 21:25:34&#8217;, 52911)]                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44244\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : JCZ2MkKb5S8ZX9pq <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @necomancer \u641c\u4e86\u4e0b\uff0c\u770b\u5230 pandas \u6709\u4e2a diff \u65b9\u6cd5\u3002<br \/>[pandas.DataFrame.diff \u2014 pandas 0.25.3 documentation]( https:\/\/pandas.pydata.org\/pandas-docs\/stable\/reference\/api\/pandas.DataFrame.diff.html)                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44245\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : necomancer <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u662f\u2026\u2026\u6211\u8111\u6b8b\u4e86\u2026\u2026<br \/>[data[0]] + list(map(lambda x: [x[1][0],x[1][1]-x[0][1]], zip(data[:-1],data[1:])))                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44246\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : ClericPy <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             ![uTools_1576073918431.png]( https:\/\/i.loli.net\/2019\/12\/11\/aR6rG5JXbQoUql8.png)<\/p>\n<p>\u4ee5\u524d\u5199\u8fc7\u7c7b\u4f3c\u7684\u6709\u5e8f\u4e00\u7ef4\u6570\u7ec4\u5224\u65ad\u95f4\u9694\u7684, \u53d6\u524d\u51e0\u884c\u6539\u6539\u4e5f\u80fd\u7528, \u4e3b\u8981\u5c31\u662f\u4e00\u884c<\/p>\n<p>diffs = [nums[i + 1] &#8211; nums[i] for i in range(len(nums) &#8211; 1)]<\/p>\n<p>pythonic \u8fd9\u79cd\u4e1c\u897f\u4e0d\u662f\u70ab\u6280, \u727a\u7272\u53ef\u8bfb\u6027\u5199\u51fa\u6765\u7684\u4ee3\u7801\u57fa\u672c\u7b49\u540c\u4e8e\u8822                                                            <\/p><\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44247\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : necomancer <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @ClericPy nums[i]\u8fd9\u6837\u4f1a\u5f15\u5165\u4e00\u4e2a O(N) \u64cd\u4f5c\u7684\u3002                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44248\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : ipwx <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u4f60\u8fd9\u4e2a\u4f8b\u5b50\u5199\u4e2a for \u96be\u9053\u4e0d\u662f\u53ef\u8bfb\u6027\u6700\u597d\u7684\u4e48\uff1f<\/p>\n<p>\u5728\u8fd9\u91cc\u8ffd\u6c42\u6240\u8c13\u7684\u201cPythonic\u201d\u672a\u514d\u8d70\u706b\u5165\u9b54\u4e86\u3002                                                            <\/p><\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44249\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : necomancer <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @JCZ2MkKb5S8ZX9pq pandas \u6211\u7528\u5f97\u4e0d\u591a\u3002pandas \u5012\u662f\u652f\u6301\u65f6\u95f4\u4f5c\u5dee\uff0c\u4f46\u5fc5\u987b\u662f pandas \u7684 datetime \u7c7b\u578b\uff0c\u5b57\u7b26\u4e32\u76f4\u63a5\u5e26\u5165\u4f1a\u62a5\u9519\u3002                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44250\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : JCZ2MkKb5S8ZX9pq <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @necomancer <br \/> df = pd.DataFrame(data, columns=[&#8216;time&#8217;, &#8216;volume&#8217;])<br \/> df[&#8216;volume&#8217;] = df[&#8216;volume&#8217;].diff()<br \/> df[&#8216;volume&#8217;].fillna(0, inplace=True)<br \/> df[&#8216;volume&#8217;] = df[&#8216;volume&#8217;].astype(int)<br \/> print(df)<\/p>\n<p>diff \u53ef\u4ee5\u5e94\u7528\u5728\u5355\u72ec\u7684 series\uff0c\u5c31\u662f\u5b83\u4e0d\u6253 0 \u800c\u662f\u7528 nan\uff0c\u8fd8\u8981\u518d\u8f6c\u4e00\u4e0b\u3002                                                            <\/p><\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44251\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : necomancer <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @JCZ2MkKb5S8ZX9pq \u8fd9\u6837\u554a\uff0c\u8c22\u8c22\u3002\u4e0d\u8fc7\u6211\u770b\u6c42 diff \u7684\u65f6\u5019 pd \u597d\u50cf\u6ca1\u6709 numpy.diff \u91cc\u7684 prepend \u529f\u80fd\uff0c\u6240\u4ee5\u65e0\u8bba\u5982\u4f55\u5c11\u4e00\u4e2a\u3002\u6309\u4f60\u7684\u8981\u6c42\u662f\u7b2c\u4e00\u4e2a\u503c\u4e0d\u53d8\uff0c\u539f\u59cb\u6570\u636e\u5e94\u8be5\u5728\u5934\u4e00\u4e2a\u52a0\u4e00\u4e2a[&#8216;&#8212;&#8216;, 0] \u8fdb\u53bb\u5427\uff5e                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44252\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : necomancer <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u6216\u8005\u76f4\u63a5 df[&#8216;volume&#8217;] = numpy.diff(df[&#8216;volume&#8217;], prepend=0)                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44253\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : JCZ2MkKb5S8ZX9pq <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @necomancer <br \/>\u5176\u5b9e\u611f\u89c9\u8fd9\u4e48\u641e\uff0c\u9002\u7528\u6027\u7684\u786e\u4e0d\u9ad8\u3002<br \/>\u5982\u679c\u6570\u636e\u5185\u90e8\u60f3\u6807\u6e05\u695a\u70b9\uff0c\u7528 dict \u6765\u8bb0\u5f55\u6bcf\u4e00\u6761\uff0c\u5199\u8d77\u6765\u66f4\u957f\uff0c\u7684\u786e\u5d4c\u5957\u8d77\u6765\u4e0d\u5927\u597d\u8bfb\u3002<br \/>pandas \u5728\u8fd9\u79cd\u5730\u65b9\u8fd8\u662f\u633a\u597d\u7684\u3002<\/p>\n<p>\u4ee5\u524d\u90fd\u662f\u7b80\u5355\u8868\u683c\u76f4\u63a5 prettyTable\uff0c\u611f\u89c9 pandas \u8fd8\u662f\u503c\u5f97\u6df1\u5165\u641e\u641e\u3002                                                            <\/p><\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44254\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : JCZ2MkKb5S8ZX9pq <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @necomancer \u6ca1\u9519\uff0cpandas \u7b2c\u4e00\u4e2a\u641e\u4e86 0 \u51fa\u6765\u3002\u4f60\u4e0d\u8bf4\u6211\u8fd8\u6ca1\u6ce8\u610f\u3002                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44255\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : JCZ2MkKb5S8ZX9pq <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @necomancer <br \/>\u8fd9\u6837\u63d2\u884c\u518d\u62ff\u6389\u611f\u89c9\u4e5f\u633a\u8822\u7684\uff0c\u4e00\u6574\u5957\u8fd8\u662f\u81ea\u5df1\u5199\u4e2a\u65b9\u6cd5\u5c01\u8d77\u6765\u7528\u7b97\u4e86\u3002<br \/>numpy \u6211\u4e0d\u5927\u719f\uff0c\u4f60\u611f\u89c9 numpy \u548c pandas \u54ea\u4e2a\u503c\u5f97\u4f18\u5148\u5730\u6df1\u5165\u770b\u770b\uff1f                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44256\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : JCZ2MkKb5S8ZX9pq <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @ClericPy \u4f60\u8fd9\u4e2a\u662f\u7b97\u95f4\u9694\u7684\u8bdd\uff0c\u957f\u5ea6 1 \u7684\u65f6\u5019\u4e3a\u4ec0\u4e48\u4e0d\u662f\u8fd4\u56de 0 \uff1f                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44257\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : necomancer <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @JCZ2MkKb5S8ZX9pq numpy \u662f\u57fa\u7840\u3002\u6211\u662f\u505a\u7269\u7406\u7684\u6240\u4ee5\u5f88\u5c11\u5904\u7406\u975e\u6570\u5b57\u7684\u6570\u636e\uff0cpandas \u9664\u4e86 read_csv \u5565\u7684\u6ca1\u548b\u7528\u8fc7\u3002<br \/>\u4f46 pandas \u7684 dataframe \u7684\u5e95\u5c42\u4f3c\u4e4e\u5c31\u662f numpy.ndarray\uff0c\u6bd4\u5982 df.values \u4f1a\u8fd4\u56de numpy.ndarray \uff1b numpy \u7684\u51fd\u6570\u4e5f\u66f4\u6570\u5b66\u5316\u3002\u4f46 pandas \u7684 dataframe \u9488\u5bf9\u5404\u79cd\u590d\u6742\u7684\u6570\u636e\u4f3c\u66f4\u53cb\u597d\u4e00\u4e9b\u3002                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44258\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : necomancer <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             numpy \u53bb\u5b98\u65b9\u6587\u6863\u770b\u770b\u90a3\u4e2a\u5165\u95e8\u4e86\u89e3\u4e00\u4e0b\u5404\u79cd\u6570\u7ec4\u7684\u64cd\u4f5c\u5c31\u53ef\u4ee5\u4e86\u3002\u4f60\u8981\u662f\u5904\u7406\u6570\u636e\u5c24\u5176\u662f\u7b80\u5355\u7edf\u8ba1\u4e00\u7c7b\u7684\u6bd4\u8f83\u591a\u7684\u8bdd\uff0c\u591a\u770b\u770b pandas\u3002\u6709\u4e9b\u50cf dataframe.diff \u4e0d\u90a3\u4e48\u597d\u7528\u7684\u573a\u666f\u6bd5\u7adf\u8fd8\u53ef\u4ee5\u7528 numpy.diff (prepend\uff0cappend \u548c axis \uff09\uff0c\u6bd5\u7adf\u6570\u636e\u5e94\u8be5\u662f\u4e00\u6837\u7684\u3002                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44259\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : dongxiao <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             1\u3001<br \/>data[0:1] + list(map(lambda obj1, obj2: [obj1[0], obj2[1]-obj1[1]], data[0:-1], data[1:]))<\/p>\n<p>2\u3001<br \/>from pandas import DataFrame<br \/>frame = DataFrame(data)<br \/>pd.concat([frame.loc[:, 0], frame.loc[:, 1].map(int).diff()], axis=1).combine_first(frame)                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44260\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : JCZ2MkKb5S8ZX9pq <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @necomancer \u597d\u7684\uff0c\u6211\u53bb\u4e86\u89e3\u4e00\u4e0b\u3002                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44261\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : JCZ2MkKb5S8ZX9pq <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @dongxiao \u8fd9\u4e2a\u662f\u4f1a\u73a9 pandas \u7684\uff0c\u8ba9\u6211\u597d\u597d\u6d88\u5316\u4e00\u4e0b\u3002                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44262\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : dongxiao <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             3\u3001<br \/>import numpy as np<br \/>arr = np.array(data)<br \/>time_arr, num_arr = np.hsplit(arr, [1])<br \/>np.c_[time_arr, np.r_[num_arr[:1], np.diff(num_arr.astype(int), 1, 0)]]<\/p>\n<p># \u5982\u679c\u8981\u683c\u5f0f\u8f6c\u6362\u5219<br \/>list(map(lambda obj: [obj[0], int(obj[1])], np.c_[time_arr, np.r_[num_arr[:1], np.diff(num_arr.astype(int), 1, 0)]].tolist()))                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44263\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : ClericPy <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @JCZ2MkKb5S8ZX9pq #23 \u5443, \u770b\u4e86\u8fd9\u4e48\u591a\u56de\u5e16\u624d\u77e5\u9053\u4f60\u662f\u8981\u6570\u636e\u5206\u6790\u91cf\u7ea7\u6bd4\u8f83\u5927\u7684, \u90a3\u8d70 pandas \u80af\u5b9a\u662f\u6700\u597d\u7684\u9009\u62e9, \u6027\u80fd\u9ad8\u4e00\u5927\u622a\u8fd8\u4e0d\u5bb9\u6613\u51fa\u9519<\/p>\n<p>@necomancer #10 \u597d\u5427, \u6211\u8fd8\u771f\u6ca1\u60f3\u5230\u590d\u6742\u5ea6\u5c42\u9762, \u4ee5\u524d\u88ab CTO \u902e\u4f4f\u6559\u8bad\u4e86\u534a\u5929\u522b\u592a\u7ea0\u7ed3\u8bed\u6cd5\u7cd6, \u5199\u8fc7\u592a\u591a\u5c4e\u5c71, \u6240\u4ee5\u628a pythonic \u5c31\u76f4\u63a5\u770b\u4f5c\u4f18\u96c5\u7684\u53ef\u8bfb\u6027\u4e86                                                            <\/p><\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44264\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : dangyuluo <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u6700 pythonic \u7684\u5199\u6cd5\u96be\u9053\u4e0d\u662f\u7528 numpy \u4e48\u54c8\u54c8\uff0cshift \u7b2c\u4e8c\u5217\u7136\u540e\u51cf\u4e00\u4e0b                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44265\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : cassidyhere <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             from itertools import chain<\/p>\n<p>l = [100, 130, 190]<br \/>[i &#8211; j for i, j in zip(l, chain([0], l[:-1]))]<\/p>\n<p>\u8fd9\u6837\u5427\uff0c\u5982\u679c\u60f3\u7528 map \u8fd8\u53ef\u4ee5\u7528 operator<\/p>\n<p>import operator<\/p>\n<p>map(operator.sub, l, chain([0], l[:-1]))                                                            <\/p><\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44266\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : cassidyhere <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u6d89\u53ca\u5faa\u73af\u6216\u5e8f\u5217\u91cc\u5143\u7d20\u95f4\u7684\u64cd\u4f5c\uff0c\u53ef\u4ee5\u770b\u770b itertools, operator, functools                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44267\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : wliansheng <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u4e3a\u4ec0\u4e48\u4e0a\u5927\u90e8\u5206\u56de\u7b54\u90fd\u4e0d\u80fd\u6210\u529f\u8fd0\u884c\u3002\u9664\u4e86 @cassidyhere \u53ef\u4ee5\u5f97\u5230 [100, 30, 60]                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44268\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : JCZ2MkKb5S8ZX9pq <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @cassidyhere <br \/>\u4f60\u8fd9\u4e00\u5199\uff0c\u6211\u611f\u89c9\u4ee5\u524d\u770b cookbook \u7684\u65f6\u5019\u90fd\u89c1\u8fc7\uff0c\u592a\u4e45\u4e0d\u7528\u90fd\u8fd8\u56de\u53bb\u4e86\u3002\/\u6342\u8138<\/p>\n<p>\u4e0d\u8fc7\u8fd9\u4e2a\u9898\u76ee\u6211\u540e\u6765\u60f3\u60f3\uff0c\u8fd8\u662f\u6709\u4e00\u4e9b\u7ec6\u8282\u53ef\u4ee5\u63a2\u8ba8\u3002\u51e0\u79cd\u65b9\u6cd5\u6548\u7387\u4e0a\u8fd8\u662f\u6709\u70b9\u533a\u522b\u3002                                                            <\/p><\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"44269\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : cfwyy <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u4e0d\u77e5\u9053\u5565\u53eb pythonic\uff0c\u89c1\u7b11\u4e86\u3002<\/p>\n<p>newdata=data[0:1]<br \/>newdata.extend([[data[i][0],data[i][1]-data[i-1][1]] for i in range(1,len(data))])                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li>\n","protected":false},"excerpt":{"rendered":"<p>Python \u5feb\u901f\u8ba1\u7b97\u589e\u91cf\u7684\u65b9\u6cd5 &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[],"_links":{"self":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/128481"}],"collection":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=128481"}],"version-history":[{"count":0,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/128481\/revisions"}],"wp:attachment":[{"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=128481"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=128481"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=128481"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}