是否有一种将结构化数组转换为向量的pythonic方法?
例如:
我正在尝试转换数组,如:
[(9,), (1,), (1, 12), (9,), (8,)]
Run Code Online (Sandbox Code Playgroud)
到一个像这样的矢量:
[9,1,1,12,9,8]
Run Code Online (Sandbox Code Playgroud) 是否可以在python中堆叠稀疏和密集的numpy数组?我知道这可以使用vstack/hstack为密集的numpy数组完成.我有一些列,我想添加到稀疏矩阵,以增加特征向量的数量
我有一个如下的命名元组,
tup = myTuple (
a=...,
b=...,
c=...,
)
Run Code Online (Sandbox Code Playgroud)
where ...可以是任何值(字符串,数字,日期,时间等).现在,我列出了这些命名元组并想要查找,假设c = 1和a和b的对应值.有没有pythonic方式这样做?
我有一个像下面这样的pandas数据帧:
A B C D
0 7 2 5 2
1 3 3 1 1
2 0 2 6 1
3 3 6 2 9
Run Code Online (Sandbox Code Playgroud)
可以有100个列,在上面的例子中我只显示了4个.
我想为每一行及其值提取top-k列.
我可以使用以下方法获得top-k列:
pd.DataFrame({n: df.T[column].nlargest(k).index.tolist() for n, column in enumerate(df.T)}).T
Run Code Online (Sandbox Code Playgroud)
其中,对于k = 3给出:
0 1 2
0 A C B
1 A B C
2 C B D
3 D B A
Run Code Online (Sandbox Code Playgroud)
但我想拥有的是:
0 1 2 3 4 5
0 A 7 C 5 B 2
1 A 3 B 3 C 1
2 C …Run Code Online (Sandbox Code Playgroud) 假设我有一个numpy数组
A = [[1 2 3]
[2 3 3]
[1 2 3]]
Run Code Online (Sandbox Code Playgroud)
和另一个数组
B = [[3 2 3]
[1 2 3]
[4 6 3]]
Run Code Online (Sandbox Code Playgroud)
和一组真值:
C = [[1 4 3]
[8 7 3]
[4 10 3]]
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个数组D,其元素是从A或B中删除的,条件是每个元素与数组C的最接近的值.
有没有pythonic方式来做到这一点?现在我正在使用循环
我正在使用opencv和python flask API对图像进行一些处理。我想在浏览器中显示图像。
import cv2
from flask import Flask, request, make_response
import base64
import numpy as np
import urllib
app = Flask(__name__)
@app.route('/endpoint', methods=['GET'])
def process():
image_url = request.args.get('imageurl')
requested_url = urllib.urlopen(image_url)
image_array = np.asarray(bytearray(requested_url.read()), dtype=np.uint8)
img = cv2.imdecode(image_array, -1)
# Do some processing, get output_img
retval, buffer = cv2.imencode('.png', output_img)
png_as_text = base64.b64encode(buffer)
response = make_response(png_as_text)
response.headers['Content-Type'] = 'image/png'
return response
if __name__ == '__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
但是,我得到的是空的无效图像作为输出。我究竟做错了什么?
在Pandas我们可以通过使用删除重复dataframe.drop_duplicates()项,默认情况下保留重复数据的第一行.如果keep_last = True,保留最后一行.我们如何使用pandas保留任何随机行并删除重复的行drop_duplicate?
我有一个2d numpy数组X = (xrows, xcols),我想在数组的每个行组合上应用点积,以获得另一个形状的数组P = (xrow, xrow).
代码如下所示:
P = np.zeros((xrow, xrow))
for i in range(xrow):
for j in range(xrow):
P[i, j] = numpy.dot(X[i], X[j])
Run Code Online (Sandbox Code Playgroud)
如果阵列X很小但是需要花费大量时间才能很好地工作X.有没有什么方法可以让它更快或更蟒蛇化,以便快速?
我想set()在朱莉娅的python中使用它.有可能这样做吗?如果是,请使用以下python代码提供示例
set(A) - set(B)
Run Code Online (Sandbox Code Playgroud) 我想应用一个函数fn,它本质上是cosine distance对两个形状为 (10000, 100) 和 (5000, 100) 的大型 numpy 数组按行进行计算,即我计算这些数组中每个行组合的值。
我的实现:
import math
def fn(v1,v2):
sumxx, sumxy, sumyy = 0, 0, 0
for i in range(len(v1)):
x = v1[i]; y = v2[i]
sumxx += x*x
sumyy += y*y
sumxy += x*y
return sumxy/math.sqrt(sumxx*sumyy)
val = []
for i in range(array1.shape[0]):
for j in range(array2.shape[0]):
val.append(fn(array1[i, :], array2[j, :]))
Run Code Online (Sandbox Code Playgroud)
该函数非常快,只需要几毫秒:
CPU times: user 4 ms, sys: 0 ns, total: 4 ms
Wall time: 1.24 ms
Run Code Online (Sandbox Code Playgroud)
有什么有效的方法可以做到这一点吗?