我想使用python模块"urllib.request"从网址下载图像文件,该模块适用于某些网站(例如mangastream.com),但不适用于另一个(mangadoom.co)接收错误"HTTP错误403:禁止" .后一种情况可能会出现什么问题以及如何解决?
我在OSX上使用python3.4.
import urllib.request
# does not work
img_url = 'http://mangadoom.co/wp-content/manga/5170/886/005.png'
img_filename = 'my_img.png'
urllib.request.urlretrieve(img_url, img_filename)
Run Code Online (Sandbox Code Playgroud)
在错误消息的末尾,它说:
...
HTTPError: HTTP Error 403: Forbidden
Run Code Online (Sandbox Code Playgroud)
但是,它适用于其他网站
# work
img_url = 'http://img.mangastream.com/cdn/manga/51/3140/006.png'
img_filename = 'my_img.png'
urllib.request.urlretrieve(img_url, img_filename)
Run Code Online (Sandbox Code Playgroud)
我已经尝试过以下帖子中的解决方案,但它们都不适用于mangadoom.co.
这里的解决方案也不合适,因为我的情况是下载图像. urllib2.HTTPError:HTTP错误403:禁止
非python解决方案也是受欢迎的.您的建议将非常感谢.
我在 python 3.4 中使用 scikit-learn 包中的决策树分类器,我想为我的每个输入数据点获取相应的叶节点 ID。
例如,我的输入可能如下所示:
array([[ 5.1, 3.5, 1.4, 0.2],
[ 4.9, 3. , 1.4, 0.2],
[ 4.7, 3.2, 1.3, 0.2]])
Run Code Online (Sandbox Code Playgroud)
假设对应的叶节点分别为 16、5 和 45。我希望我的输出是:
leaf_node_id = array([16, 5, 45])
Run Code Online (Sandbox Code Playgroud)
我已经通读了 scikit-learn 邮件列表和关于 SF 的相关问题,但我仍然无法让它工作。这是我在邮件列表中找到的一些提示,但仍然不起作用。
http://sourceforge.net/p/scikit-learn/mailman/message/31728624/
归根结底,我只想有一个函数 GetLeafNode(clf, X_valida) 使其输出是相应叶节点的列表。下面是重现我收到的错误的代码。因此,任何建议将不胜感激。
from sklearn.datasets import load_iris
from sklearn import tree
# load data and divide it to train and validation
iris = load_iris()
num_train = 100
X_train = iris.data[:num_train,:]
X_valida = iris.data[num_train:,:]
y_train = iris.target[:num_train]
y_valida = iris.target[num_train:]
# …Run Code Online (Sandbox Code Playgroud) 是否可以在 pyspark 中创建字典groupBy.agg()?这是一个玩具示例:
import pyspark
from pyspark.sql import Row
import pyspark.sql.functions as F
sc = pyspark.SparkContext()
spark = pyspark.sql.SparkSession(sc)
toy_data = spark.createDataFrame([
Row(id=1, key='a', value="123"),
Row(id=1, key='b', value="234"),
Row(id=1, key='c', value="345"),
Row(id=2, key='a', value="12"),
Row(id=2, key='x', value="23"),
Row(id=2, key='y', value="123")])
toy_data.show()
+---+---+-----+
| id|key|value|
+---+---+-----+
| 1| a| 123|
| 1| b| 234|
| 1| c| 345|
| 2| a| 12|
| 2| x| 23|
| 2| y| 123|
+---+---+-----+
Run Code Online (Sandbox Code Playgroud)
这是预期的输出:
---+------------------------------------
id | key_value
---+------------------------------------ …Run Code Online (Sandbox Code Playgroud) pct_<original_name>_valid我想计算每个输入列的非缺失值的百分比。在此示例中只有 2 列,因此可以轻松手动编写下面的代码。但是当有 30 多个列时,我不想手动执行此操作。甚至可以动态地执行此操作吗?(例如,将列名称列表作为输入)
import pyspark.sql.functions as F
d = [{'name': 'Alice', 'age': 1}, {'name': 'Bae', 'age': None}]
df = spark.createDataFrame(d)
df.withColumn('name_valid', F.when(col("name").isNotNull(),1).otherwise(0))\
.withColumn('age_valid', F.when(col("age").isNotNull(),1).otherwise(0))\
.agg(
(100.0*F.sum(col("name_valid"))/F.count(F.lit(1))).alias("pct_name_valid"),
(100.0*F.sum(col("age_valid"))/F.count(F.lit(1))).alias("pct_age_valid")
)\
.show()
Run Code Online (Sandbox Code Playgroud)
结果如下:
+--------------+-------------+
|pct_name_valid|pct_age_valid|
+--------------+-------------+
| 100.0| 50.0|
+--------------+-------------+
Run Code Online (Sandbox Code Playgroud)
如前所述,我不想对所有 30 多个列手动执行此操作。有什么办法我可以这样做:
my_output = calculate_non_missing_percentage(df, my_columns = ["name", "age", "gender", "school", "color"])
Run Code Online (Sandbox Code Playgroud) pyspark ×2
apache-spark ×1
download ×1
image ×1
python ×1
python-3.x ×1
scikit-learn ×1
url ×1
urllib ×1