我想从 url 加载 jpg 图像作为 numpy 数组。但每当我这样做时,我都会收到错误。有人可以告诉我该怎么做才能使我的代码正常工作吗?
import urllib2
import matplotlib.pyplot as plt
import numpy as np
f=urllib2.urlopen("https://www.ibiblio.org/hyperwar/USA/USA-EF-Defeat/maps/USA-EF-Defeat-40.jpg")
print(f.shape)
plt.imshow(f)
plt.show()
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,出现错误:
TypeError: Image data can not convert to float
Run Code Online (Sandbox Code Playgroud) 在 Pandas 中有没有办法使用列名作为参数名将函数应用于数据框?例如,我有一个函数和一个数据框。
df = pd.DataFrame({'A':[1,2,3],
'B':[1,2,3],
'C':[1,2,3],
'D':[1,2,3]})
def f(A,B,C):
#Pretend code is more complicated
return A + B + C
Run Code Online (Sandbox Code Playgroud)
有没有办法我可以做类似的事情
df.apply(f)
Run Code Online (Sandbox Code Playgroud)
并让熊猫将列与命名参数匹配?
我知道我可以重写函数以获取一行而不是命名参数,但请记住 f 只是一个玩具示例,我的实际函数更复杂
编辑:
基于@juanpa.arrivillaga 的答案想出了它:
df[list(f.__code__.co_varnames)].apply((lambda row: f(**row)), axis=1)