我有一个像这样的Python列表,
arr = [110, 60, 30, 10, 5]
Run Code Online (Sandbox Code Playgroud)
我需要做的实际上是找到每个数字与所有其他数字的差异,然后找到所有这些差异的平均值。
因此,对于这种情况,它将首先找到 之间的差异110,然后找到所有剩余元素 ie 之间的差异,然后它将找到与剩余元素 ie等之间60, 30, 10, 5的差异。6030, 10, 5
之后,它将计算所有这些差异的平均值。
现在,这可以通过两个 For 循环轻松完成,但O(n^2)时间复杂度较高,而且代码也有点“混乱”。我想知道是否有更快、更有效的方法来做同样的事情?
我有三个从 Excel 文件导入的 DataFrame。下面以 HTML 表格形式给出数据框,
Season Wise Record(这包含一个最初Reward初始化的列0)
<table><tbody><tr><th>Unnamed: 0</th><th>Name</th><th>Team</th><th>Position</th><th>Games Played</th><th>PassingCompletions</th><th>PassingYards</th><th>PassingTouchdowns</th><th>RushingYards</th><th>RushingTouchdowns</th><th>ReceivingYards</th><th>Receptions</th><th>Touchdowns</th><th>Type</th><th>Sacks</th><th>SoloTackles</th><th>TacklesForLoss</th><th>FumblesForced</th><th>DefensiveTouchdowns</th><th>Interceptions</th><th>PassesDefended</th><th>ReceivingTouchdowns</th><th>Reward</th></tr><tr><td>0</td><td>Tom Brady</td><td>TAM</td><td>QB</td><td>17</td><td>485</td><td>5316</td><td>43</td><td>81</td><td>2</td><td>0</td><td>0</td><td>2</td><td>OFFENSE</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>1</td><td>Justin Herbert</td><td>LAC</td><td>QB</td><td>17</td><td>443</td><td>5014</td><td>38</td><td>302</td><td>3</td><td>0</td><td>0</td><td>3</td><td>OFFENSE</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>2</td><td>Matthew Stafford</td><td>LAR</td><td>QB</td><td>17</td><td>404</td><td>4886</td><td>41</td><td>43</td><td>0</td><td>0</td><td>0</td><td>0</td><td>OFFENSE</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>3</td><td>Patrick Mahomes</td><td>KAN</td><td>QB</td><td>17</td><td>436</td><td>4839</td><td>37</td><td>381</td><td>2</td><td>0</td><td>0</td><td>2</td><td>OFFENSE</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>4</td><td>Derek Carr</td><td>LVR</td><td>QB</td><td>17</td><td>428</td><td>4804</td><td>23</td><td>108</td><td>0</td><td>0</td><td>0</td><td>0</td><td>OFFENSE</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>5</td><td>Joe Burrow</td><td>CIN</td><td>QB</td><td>16</td><td>366</td><td>4611</td><td>34</td><td>118</td><td>2</td><td>0</td><td>0</td><td>2</td><td>OFFENSE</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>6</td><td>Dak Prescott</td><td>DAL</td><td>QB</td><td>16</td><td>410</td><td>4449</td><td>37</td><td>146</td><td>1</td><td>0</td><td>0</td><td>1</td><td>OFFENSE</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>7</td><td>Josh Allen</td><td>BUF</td><td>QB</td><td>17</td><td>409</td><td>4407</td><td>36</td><td>763</td><td>6</td><td>0</td><td>0</td><td>6</td><td>OFFENSE</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>88</td><td>Ezekiel Elliott</td><td>DAL</td><td>RB</td><td>17</td><td>1</td><td>4</td><td>0</td><td>1002</td><td>10</td><td>287</td><td>47</td><td>12</td><td>OFFENSE</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>2</td><td>0</td></tr><tr><td>89</td><td>Marcus Mariota</td><td>LVR</td><td>QB</td><td>10</td><td>1</td><td>4</td><td>0</td><td>87</td><td>1</td><td>0</td><td>0</td><td>1</td><td>OFFENSE</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>90</td><td>Johnny Hekker</td><td>LAR</td><td>QB</td><td>17</td><td>1</td><td>2</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>OFFENSE</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>91</td><td>Greg Ward</td><td>PHI</td><td>QB</td><td>17</td><td>1</td><td>2</td><td>0</td><td>0</td><td>0</td><td>95</td><td>7</td><td>3</td><td>OFFENSE</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>3</td><td>0</td></tr><tr><td>92</td><td>Kendall Hinton</td><td>DEN</td><td>WR</td><td>16</td><td>1</td><td>1</td><td>0</td><td>0</td><td>0</td><td>175</td><td>15</td><td>1</td><td>OFFENSE</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td></tr><tr><td>93</td><td>Keenan Allen</td><td>LAC</td><td>WR</td><td>16</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1138</td><td>106</td><td>6</td><td>OFFENSE</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>6</td><td>0</td></tr><tr><td>94</td><td>Danny Amendola</td><td>HOU</td><td>QB</td><td>8</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>248</td><td>24</td><td>3</td><td>OFFENSE</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>3</td><td>0</td></tr><tr><td>95</td><td>Cole Beasley</td><td>BUF</td><td>WR</td><td>16</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>693</td><td>82</td><td>1</td><td>OFFENSE</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td></tr></tbody></table>Run Code Online (Sandbox Code Playgroud)
Game Wise Record(我只添加一些示例行,其中有 20k+ 行)
<table><tbody><tr><th>Index</th><th>Week</th><th>Name</th><th>Team</th><th>Starter</th><th>Interceptions</th><th>PassesDefended</th><th>Sacks</th><th>SoloTackles</th><th>TacklesForLoss</th><th>FumblesForced</th><th>PassesCompletions</th><th>PassingYards</th><th>PassingTouchdowns</th><th>PassingInterceptions</th><th>RushingYards</th><th>RushingTouchdowns</th><th>Receptions</th><th>ReceivingYards</th><th>ReceivingTouchdowns</th></tr><tr><td>0</td><td>1</td><td>Jourdan Lewis</td><td>DAL</td><td>1</td><td>1</td><td>2</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>1</td><td>1</td><td>Trevon Diggs</td><td>DAL</td><td>1</td><td>1</td><td>2</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>2</td><td>1</td><td>Anthony Brown</td><td>DAL</td><td>1</td><td>0</td><td>0</td><td>0</td><td>6</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>3</td><td>1</td><td>Jayron Kearse</td><td>DAL</td><td>0</td><td>0</td><td>0</td><td>0</td><td>5</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>4</td><td>1</td><td>Micah Parsons</td><td>DAL</td><td>1</td><td>0</td><td>1</td><td>0</td><td>3</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>5</td><td>1</td><td>Keanu Neal</td><td>DAL</td><td>1</td><td>0</td><td>0</td><td>0</td><td>3</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>6</td><td>1</td><td>DeMarcus Lawrence</td><td>DAL</td><td>1</td><td>0</td><td>0</td><td>0</td><td>4</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>7</td><td>1</td><td>Jaylon Smith</td><td>DAL</td><td>0</td><td>0</td><td>0</td><td>0</td><td>2</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>8</td><td>1</td><td>Dorance Armstrong Jr.</td><td>DAL</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>9</td><td>1</td><td>Tarell Basham</td><td>DAL</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>5175</td><td>5</td><td>Patrick Mahomes</td><td>KAN</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>33</td><td>272</td><td>2</td><td>2</td><td>61</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>5176</td><td>5</td><td>Darrel Williams</td><td>KAN</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>27</td><td>0</td><td>3</td><td>18</td><td>0</td></tr><tr><td>5177</td><td>5</td><td>Tyreek Hill</td><td>KAN</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>15</td><td>0</td><td>7</td><td>63</td><td>0</td></tr><tr><td>5178</td><td>5</td><td>Clyde Edwards-Helaire</td><td>KAN</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>13</td><td>0</td><td>1</td><td>11</td><td>0</td></tr><tr><td>5179</td><td>5</td><td>Jerick McKinnon</td><td>KAN</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>2</td><td>0</td><td>2</td><td>13</td><td>0</td></tr><tr><td>5180</td><td>5</td><td>Michael Burton</td><td>KAN</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>2</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>5181</td><td>5</td><td>Mecole Hardman</td><td>KAN</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>9</td><td>76</td><td>0</td></tr><tr><td>5182</td><td>5</td><td>Travis Kelce</td><td>KAN</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>6</td><td>57</td><td>1</td></tr></tbody></table>Run Code Online (Sandbox Code Playgroud)
最后,有一个Player Goals File(这是一个 Excel 文件,其中包含每个职位的表格,我仅共享 QB 表格,以保持问题简短。如果需要,我也可以共享其余部分)
我一直在观看几个有关多处理map功能的视频。
我知道我可以将一个列表作为参数发送给我想要使用多重处理作为目标的函数,并且这将调用同一函数 n 次(取决于传递列表的大小)。
我正在努力做的是,如果我想向该函数传递多个参数怎么办?
我基本上有一个列表,其大小为n(它可以变化,但对于当前情况,它是 209)
我的函数需要 3 个参数...
我可以使用第二个和第三个参数作为全局变量,但这对我不起作用,因为我必须在 while 循环中调用 map 函数......并且在每一次迭代中,这两个参数的值都会改变。
我的函数返回两个值,我需要在调用它的函数中访问它们。这是我尝试过的,但它对我不起作用,
def main_fun():
with concurrent.futures.ProcessPoolExecutor() as executor:
results = executor.map(MyFun, (row, pop[0].data, fitness) for row in range(0, len(pop[0].data)))
for result in results:
print(result)
Run Code Online (Sandbox Code Playgroud)
我也尝试使用ZIP函数,但再次没有成功。
我使用了 Github 上的这个项目: https: //github.com/nicknochnack/TFODCourse
该项目包含一个可以检测给定车辆图像上的车牌的模型。Github 存储库还包含将模型转换为 Tensorflow Lite 文件的代码。
我使用该代码生成 TFLite 文件。
然后,我点击了此链接:https ://developers.google.com/codelabs/tflite-object-detection-android
我下载了对象检测模型的示例应用程序并按照说明操作,将 TFLite 文件复制到 Android 应用程序中。
现在,如果我运行该应用程序并拍照,它会给我这个错误,
/TaskJniUtils: Error getting native address of native library: task_vision_jni
java.lang.RuntimeException: Error occurred when initializing ObjectDetector: Input tensor has type kTfLiteFloat32: it requires specifying NormalizationOptions metadata to preprocess input images.
at org.tensorflow.lite.task.vision.detector.ObjectDetector
Run Code Online (Sandbox Code Playgroud)
我知道我必须在 TFLite 模型中添加元数据。所以,我搜索了它并最终找到了这个链接: https: //www.tensorflow.org/lite/models/convert/metadata#model_with_metadata_format
但我根本不明白我到底应该做什么。任何人都可以帮助我指出正确的方向,特别是对于我的问题,我到底需要做什么?