想了解在Python中查找数字的所有因子的最有效方法是什么?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于python找出一个数的所有因子的相关问题,此外,我们还将为您介绍关于python
想了解在Python中查找数字的所有因子的最有效方法是什么?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于python找出一个数的所有因子的相关问题,此外,我们还将为您介绍关于python – 在pyspark中积累数据帧的最有效方法是什么?、python – 在TensorFlow中计算Kronecker产品的最有效方法是什么?、python – 通过Pandas DataFrame搜索子字符串的最有效方法是什么?、Python-用pandas遍历数据帧的最有效方法是什么?的新知识。
本文目录一览:- 在Python中查找数字的所有因子的最有效方法是什么?(python找出一个数的所有因子)
- python – 在pyspark中积累数据帧的最有效方法是什么?
- python – 在TensorFlow中计算Kronecker产品的最有效方法是什么?
- python – 通过Pandas DataFrame搜索子字符串的最有效方法是什么?
- Python-用pandas遍历数据帧的最有效方法是什么?
在Python中查找数字的所有因子的最有效方法是什么?(python找出一个数的所有因子)
有人可以向我解释一种在Python(2.7)中找到一个数字的所有因子的有效方法吗?
我可以创建一个算法来执行此操作,但是我认为它的编码很差,并且花费大量时间才能生成大量结果。
答案1
小编典典from functools import reducedef factors(n): return set(reduce(list.__add__, ([i, n//i] for i in range(1, int(n**0.5) + 1) if n % i == 0)))
这将很快返回所有因素n。
为什么以平方根为上限?
sqrt(x) * sqrt(x) = x
。因此,如果两个因素相同,则它们都是平方根。如果使一个因子变大,则必须使另一个因子变小。这意味着这两个之一将始终小于或等于sqrt(x)
,因此你只需搜索到该点即可找到两个匹配因子之一。然后,你可以使用x / fac1
获取fac2。
该reduce(list.__add__, ...)
走的小名单[fac1, fac2]
,并在一个长长的清单一起加入他们。
在[i, n/i] for i in range(1, int(sqrt(n)) + 1) if n % i == 0
返回两个因素,如果当你除以其余n由较小的一个是零(它并不需要检查较大的一个过;它只是获取除以n由较小的一个。)
该set(...)
在外面摆脱重复,这仅发生于完美的正方形。对于n = 4
,它将返回2两次,因此set
摆脱了其中之一。
python – 在pyspark中积累数据帧的最有效方法是什么?
Key | FeatureA | FeatureB -------------------------- U1 | 0 | 1 U2 | 1 | 1
我需要从磁盘加载十几个其他数据集,其中包含相同数量的键的不同功能.有些数据集最多可达十几列.想像:
Key | FeatureC | FeatureD | FeatureE ------------------------------------- U1 | 0 | 0 | 1 Key | FeatureF -------------- U2 | 1
感觉就像折叠或积累,我只想迭代所有的数据集,并得到这样的东西:
Key | FeatureA | FeatureB | FeatureC | FeatureD | FeatureE | FeatureF --------------------------------------------------------------------- U1 | 0 | 1 | 0 | 0 | 1 | 0 U2 | 1 | 1 | 0 | 0 | 0 | 1
我已经尝试加载每个数据帧然后加入,但一旦我通过一些数据集,这将永远.我是否缺少完成此任务的常用模式或有效方法?
解决方法
from itertools import chain from functools import reduce from pyspark.sql.types import StructType from pyspark.sql.functions import col,lit,max from pyspark.sql import DataFrame df1 = sc.parallelize([ ("U1",1),("U2",1,1) ]).toDF(["Key","FeatureA","FeatureB"]) df2 = sc.parallelize([ ("U1","FeatureC","FeatureD","FeatureE"]) df3 = sc.parallelize([("U2",1)]).toDF(["Key","FeatureF"]) dfs = [df1,df2,df3]
接下来我们可以提取常见架构:
output_schema = StructType( [df1.schema.fields[0]] + list(chain(*[df.schema.fields[1:] for df in dfs])) )
并转换所有DataFrame:
transformed_dfs = [df.select(*[ lit(None).cast(c.dataType).alias(c.name) if c.name not in df.columns else col(c.name) for c in output_schema.fields ]) for df in dfs]
最后一个联合和虚拟聚合:
combined = reduce(DataFrame.unionAll,transformed_dfs) exprs = [max(c).alias(c) for c in combined.columns[1:]] result = combined.repartition(col("Key")).groupBy(col("Key")).agg(*exprs)
如果每个键有多个行但单个列仍然是原子的,则可以尝试使用collect_list / collect_set替换max,然后使用explode.
python – 在TensorFlow中计算Kronecker产品的最有效方法是什么?
这涉及Kronecker产品的计算. TensorFlow没有Kronecker产品的操作.我正在寻找一种有效而强大的计算方法.
这是否存在,还是需要手动定义TensorFlow操作?
解决方法
kronecker_product
:
a = tf.eye(3) b = tf.constant([[1.,2.],[3.,4.]]) kron = tf.contrib.kfac.utils.kronecker_product(a,b) tf.Session().run(kron)
输出:
array([[1.,2.,0.,0.],4.,[0.,1.,3.,4.]],dtype=float32)
python – 通过Pandas DataFrame搜索子字符串的最有效方法是什么?
预期输出是authors_data dict,其中包含作者列表和出现次数.下面的代码假设我有一个dataframe [‘text’]列和一个名为authors_list的子字符串列表.
authors_data = {} for author in authors_list: count = 0 for i,row in df.iterrows(): if author in row.text: count += 1 authors_data[author] = count print(author,authors_data[author])
我做了一些初步测试,10位作者花了我大约50秒.完整的表格将花费我几天的时间来运行.所以我正在寻找更有效的方法来运行代码.
df.iterrows()足够快吗?我应该研究一下特定的库吗?
让我知道!
解决方法
for author in authors_list: authors_data[author] = df['AUTHORCOL'].map(lambda x: author in x).sum()
Python-用pandas遍历数据帧的最有效方法是什么?
如何解决Python-用pandas遍历数据帧的最有效方法是什么??
熊猫的最新版本现在包括用于遍历行的内置函数。
for index, row in df.iterrows():
# do some logic here
或者,如果你想更快地使用它 itertuples()
但是,unutbu
建议使用numpy
函数以避免对行进行迭代将产生最快的代码。
解决方法
我想按顺序对数据帧中的财务数据执行自己的复杂操作。
例如,我正在使用以下来自Yahoo Finance
的 MSFT CSV文件:
Date,Open,High,Low,Close,Volume,Adj Close
2011-10-19,27.37,27.47,27.01,27.13,42880000,27.13
2011-10-18,26.94,27.40,26.80,27.31,52487900,27.31
2011-10-17,27.11,27.42,26.85,26.98,39433400,26.98
2011-10-14,27.50,27.02,27.27,50947700,27.27
....
然后,我执行以下操作:
#!/usr/bin/env python
from pandas import *
df = read_csv(''table.csv'')
for i,row in enumerate(df.values):
date = df.index[i]
open,high,low,close,adjclose = row
#now perform analysis on open/close based on date,etc..
那是最有效的方法吗?考虑到对熊猫速度的关注,我认为必须有一些特殊的函数来迭代这些值,使它们也可以检索索引(可能通过生成器来提高内存效率)?df.iteritems
不幸的是,只能逐列进行迭代。
今天关于在Python中查找数字的所有因子的最有效方法是什么?和python找出一个数的所有因子的分享就到这里,希望大家有所收获,若想了解更多关于python – 在pyspark中积累数据帧的最有效方法是什么?、python – 在TensorFlow中计算Kronecker产品的最有效方法是什么?、python – 通过Pandas DataFrame搜索子字符串的最有效方法是什么?、Python-用pandas遍历数据帧的最有效方法是什么?等相关知识,可以在本站进行查询。
本文标签: