我试图从numpy使用arpgpartition,但似乎出现了问题,我似乎无法弄明白.这是发生了什么:
这些是排序数组的前5个元素 norms
np.sort(norms)[:5]
array([ 53.64759445, 54.91434479, 60.11617279, 64.09630585, 64.75318909], dtype=float32)
Run Code Online (Sandbox Code Playgroud)
但是当我使用时 indices_sorted = np.argpartition(norms, 5)[:5]
norms[indices_sorted]
array([ 60.11617279, 64.09630585, 53.64759445, 54.91434479, 64.75318909], dtype=float32)
Run Code Online (Sandbox Code Playgroud)
当我认为我应该得到与排序数组相同的结果?
当我使用3作为参数时,它工作得很好 indices_sorted = np.argpartition(norms, 3)[:3]
norms[indices_sorted]
array([ 53.64759445, 54.91434479, 60.11617279], dtype=float32)
Run Code Online (Sandbox Code Playgroud)
这对我来说没有多大意义,希望有人可以提供一些见解?
编辑:将这个问题改为argpartition是否保留k个分区元素的顺序更有意义.
我有Yelp数据集,我想要计算所有超过3星的评论.通过这样做,我得到了评论的数量:
reviews.groupby('business_id')['stars'].count()
Run Code Online (Sandbox Code Playgroud)
现在我想得到超过3星的评论数,所以我试着从这里获取灵感:
reviews.groupby('business_id')['stars'].agg({'greater':lambda val: (val > 3).count()})
Run Code Online (Sandbox Code Playgroud)
但这只是给了我以前所有明星的数量.我不确定这是否是正确的方法?我在这里做错了什么.lambda表达式是不是通过星列的每个值?
编辑:好的,我觉得很蠢.我应该使用sum函数而不是count来获取大于3的元素的值,如下所示:
reviews.groupby('business_id')['stars'].agg({'greater':lambda val: (val > 3).sum()})
Run Code Online (Sandbox Code Playgroud) 我正在尝试测试用C编写的HTTP客户端,该客户端将HTTP POST请求发送到计算机上的本地服务器。我keep-alive
在计算机上运行的python3 HTTP服务器上的POST请求中添加了标头,如下所示:
<ip-address-1> - - [29/Apr/2018 18:27:49] "POST /html HTTP/1.1" 200 -
Host: <ip-address-2>
Content-Type: application/json
Content-Length: 168
Connection: Keep-Alive
Keep-Alive: timeout=5, max=100
INFO:root:POST request,
Body:
{
"field": "abc",
"time": "2018-04-29T01:27:50.322000Z"
}
Run Code Online (Sandbox Code Playgroud)
HTTP服务器POST处理程序如下所示:
class S(BaseHTTPRequestHandler):
def _set_response(self):
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.send_header("Connection", "keep-alive")
self.send_header("keep-alive", "timeout=5, max=30")
self.end_headers()
def do_POST(self):
content_length = int(self.headers['Content-Length']) # <--- Gets the size of data
post_data = self.rfile.read(content_length) # <--- Gets the data itself
print(self.headers)
logging.info("POST request,\nBody:\n%s\n", post_data.decode('utf-8'))
self._set_response()
self.wfile.write("POST request for {}".format(self.path).encode('utf-8'))
def …
Run Code Online (Sandbox Code Playgroud) 我正在使用该test_train_split
模块sklearn
生成用于训练和测试的随机数据集组合。我有一个指向原始数据集的文件路径列表。我还想知道数据是如何混洗的,或者以相同的方式混洗文件路径列表,以便在混洗/拆分数据集可用后能够跟踪文件路径?
python ×3
python-3.x ×2
arrays ×1
http ×1
http-headers ×1
httpserver ×1
numpy ×1
pandas ×1
scikit-learn ×1