我想检测一下Linux系统上是否安装了python,如果是,安装了哪个python版本.
我该怎么做?有没有比解析输出更优雅的东西"python --version"?
我打开了python代码github.python2.x当我试图运行它时,我认为它是并且得到了上述错误.从阅读中我看到Python 3已经urllib自行折旧并用许多库替换它,包括urllib.request.
看起来代码是用python 3编写的(来自知道会被赞赏的人的确认.)此时我不想转向Python 3 - 我还没有研究它对我现有代码的作用.
认为应该有一个urllib模块Python 2,我搜索谷歌(使用"python2 urllib下载")并没有找到一个.(它可能隐藏在许多答案中,因为urllib包括下载功能.)我查看了我的Python27/lib目录,但没有在那里看到它.我可以获得运行此模块的版本Python27吗?在哪里以及如何?
我有一个数组A = [1,2,3]和另一个数组B = [4,5,6].现在,我需要另一个数组C,以便C中的元素应该是B元素A的顺序出现的相同元素.就像,
C = [4, 5, 5, 6, 6, 6]
使用opencv在python中将RGB图像转换为RGBA的最佳方法是什么?
假设我有一个有形状的数组
(185, 198, 3) - it is RGB
Run Code Online (Sandbox Code Playgroud)
另一种是带有形状的alpha蒙版 (185, 198)
如何合并它们并保存到文件?
假设我有矩阵
import numpy as np
A = np.matrix([[1,2,3,33],[4,5,6,66],[7,8,9,99]])
Run Code Online (Sandbox Code Playgroud)
我试图理解函数argmax,据我所知它返回最大值
如果我在Python上尝试过:
np.argmax(A[1:,2])
Run Code Online (Sandbox Code Playgroud)
我应该获得第二行中的最大元素,直到行的末尾(第三行)和第三列?所以它应该是数组[6 9],而arg max应该返回9?但是为什么当我在Python上运行它时,它返回值1?
如果我想在第3列(即9)中从第2行开始返回最大元素,我该如何修改代码?
我已经检查了Python文档,但仍然有点不清楚.感谢您的帮助和解释.
我试图使用Tweepy检索Twitter数据,使用下面的代码,但我返回401错误,我重新生成访问和秘密令牌,并出现相同的错误.
#imports
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
#setting up the keys
consumer_key = 'xxxxxxx'
consumer_secret = 'xxxxxxxx'
access_token = 'xxxxxxxxxx'
access_secret = 'xxxxxxxxxxxxx'
class TweetListener(StreamListener):
# A listener handles tweets are the received from the stream.
#This is a basic listener that just prints received tweets to standard output
def on_data(self, data):
print (data)
return True
def on_error(self, status):
print (status)
#printing all the tweets to the standard output
auth = OAuthHandler(consumer_key, consumer_secret) …Run Code Online (Sandbox Code Playgroud) 我偶然发现了不同人编写的几个python程序,我注意到每个函数都在它结束时返回
def function01():
# function
# events
# here
return
Run Code Online (Sandbox Code Playgroud)
我想知道在函数结束时包含返回是否是一个好的python编程实践,即使它没有返回任何东西(纯粹作为结束函数的一种方式)
或者它是否不需要,背景中不会发生任何不同的事情?
import os
import cv2
path='/home/nlpr4/video-data/UCF-101/GolfSwing/v_GolfSwing_g24_c06.avi'
cap=cv2.VideoCapture(path)
video_length=int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT))
success=True
count=0
while success:
success,image=cap.read()
if success==False:
break
count=count+1
print video_length,count
Run Code Online (Sandbox Code Playgroud)
输出:
149
146
Run Code Online (Sandbox Code Playgroud)
为什么这两个数字不同?怎么了?
我试图从研究论文中描述的给定图像中提取头发,使用能量最小化的概念,能量函数依赖于先验概率和YCrCb颜色似然直方图.能量函数定义为:
(x)= data(x)+smooth(x).
Run Code Online (Sandbox Code Playgroud)
data(x)= - Σ(log(I(x)| x)+ logsel(x)) [先验概率模型]
smooth(x)=Σ(x≠x)exp( - ||(x) - (x)|| ^ 2 /) [先前的YcrCb颜色模型]
我很困惑如何标记给定的图形(图像的像素被视为图形的节点).我尝试使用以下方法标记图形,但结果不符合预期:
def get_Edata(prob_dist, ycrcb_dist, img_y, img_x, pix):
e_data = 0
Y, Cr, Cb = pix
if ycrcb_dist[int(Y/4)][int(Cr/4)][int(Cb/4)] > 0 and prob_dist[img_y][img_x]>0:
e_data = -1*(math.log(ycrcb_dist[int(Y/4)][int(Cr/4)][int(Cb/4)], 10) + math.log(prob_dist[img_y][img_x], 10))
return e_data
def get_ESmooth(normalization_constant, pix_1, pix_2):
return math.exp(-(math.ceil(pix_1[0] - pix_2[0])**2)/normalization_constant)
Run Code Online (Sandbox Code Playgroud)
虽然在图表中的节点之间添加权重,但我使用:
#adding the edges between neighbouring pixels.
img_graph.add_edge(central_node, neighbour_nodes, eSmooth, 0)
#adding the edges from source to node and from node to …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Patsy(使用sklearn,pandas)来创建一个简单的回归模型.R风格的公式创作是一个主要的吸引力.
我的数据包含一个名为" ship_city " 的字段,该字段可以包含来自印度的任何城市.由于我将数据划分为训练集和测试集,因此有几个城市只出现在其中一个集合中.代码段如下:
df_train_Y, df_train_X = dmatrices(formula, data=df_train, return_type='dataframe')
df_train_Y_design_info, df_train_X_design_info = df_train_Y.design_info, df_train_X.design_info
df_test_Y, df_test_X = build_design_matrices([df_train_Y_design_info.builder, df_train_X_design_info.builder], df_test, return_type='dataframe')
Run Code Online (Sandbox Code Playgroud)
最后一行引发以下错误:
patsy.PatsyError:将数据转换为分类时出错:值为'Kolkata'的观察值与任何预期的级别都不匹配
我相信这是一个非常常见的用例,其中训练数据不会包含所有分类字段的所有级别.Sklearn的DictVectorizer可以很好地处理这个问题.
有什么方法可以让我和Patsy合作吗?