小编Lis*_*hew的帖子

使用 PySpark 展平嵌套的 JSON

我有一个嵌套的 JSON,我可以使用以下函数完全展平

# Flatten nested df  
def flatten_df(nested_df):
    for col in nested_df.columns:
        array_cols = [ c[0]  for c in nested_df.dtypes if c[1][:5] == 'array']
    for col in array_cols:
        nested_df =nested_df.withColumn(col, F.explode_outer(nested_df[col]))

    nested_cols = [c[0] for c in nested_df.dtypes if c[1][:6] == 'struct']

    if len(nested_cols) == 0:
        return nested_df

    flat_cols = [c[0] for c in nested_df.dtypes if c[1][:6] != 'struct']

    flat_df = nested_df.select(flat_cols +
                        [F.col(nc+'.'+c).alias(nc+'_'+c)
                            for nc in nested_cols
                            for c in nested_df.select(nc+'.*').columns])

    return flatten_df(flat_df)
Run Code Online (Sandbox Code Playgroud)

我想爆炸嵌套结构,但不想一直展平。我只想展平到第一级并保持随后的嵌套结构不变。

这是我使用的数据框的架构。

root
 |-- module: array …
Run Code Online (Sandbox Code Playgroud)

json apache-spark apache-spark-sql pyspark

5
推荐指数
0
解决办法
1128
查看次数

根据shapefile或多边形将栅格裁剪成numpy数组

我有一个很大的栅格文件,我想根据多边形或shapefile裁剪到6个numpy数组。我有shapefile,也有作为geopandas数据框的多边形。谁能帮我使用python(no arcpy)做到这一点

python raster gdal

4
推荐指数
1
解决办法
1906
查看次数

将中心像素值复制到块中的多数值

我有一个大小为 9085x10852 的图像像素预测数组。我想在每个像素周围得到一个 10x10 的块。如果中心像素值与块中的多数像素值不同,则用多数值替换中心像素值。谁能帮我吗

python numpy image-processing

4
推荐指数
2
解决办法
892
查看次数

从N维Numpy数组中仅获取非零子数组

我有一个numpy array 'arr'是的shape (1756020, 28, 28, 4).基本上'arr'1756020小阵列shape (28,28,4).出的1756020阵列967210是"全零"和788810具有所有的非零值.我想删除所有967210'全零'小数组.我使用条件写了一个if else循环arr[i]==0.any()但是需要花费很多时间.有没有更好的方法呢?

python arrays numpy

3
推荐指数
1
解决办法
117
查看次数

使用 Pyomo 的旅行推销员

我正在尝试使用 pyomo 来解决 TSP 问题。我已经使用 python 和 Gurobi 成功实现了,但是我的 Gurobi 许可证已过期,所以我现在想使用 pyomo 和 GLPK 来实现 TSP 问题。这是我到目前为止能想到的。它不起作用,目标值为 0。您能帮忙吗?

from pyomo.environ import * 
from pyomo.opt import SolverFactory
import pyomo.environ

n=13
distanceMatrix=[[0,8,4,10,12,9,15,8,11,5,9,4,10],
    [8,0,7,6,8,6,7,10,12,9,8,7,5],
    [4,7,0,7,9,5,8,5,4,8,6  ,10,8],
    [10,6   ,7,0,6,11,5 ,9,8,12,11,6,9],
    [12,8   ,9,6,   0,7,9,6,9,8,4,11,10],
    [9,6,5,11,7,0,10,4,3,10,6,5,7],
    [15,7   ,8,5,9,10,0,10,9,8,5,9,10],
    [8,10   ,5,9,6,4,10,0,11,5,9,6,7],
    [11,12,4,8, 9,3,9,11,0, 9,11,11,6],
    [5,9,8,12,8,10,8,5,9,0,6,7,5],
       [9,8,6,11,4,6,5,9,11,6,0,10,7],
       [4,7,10,6,11,5,9,6,11,7,10,0,9],
       [10,5,8,9,10,7,10,7,6,5,7,9,0]] 
startCity = 0

model = ConcreteModel()
model.N=Set()
model.M=Set()
model.c=Param(model.N,model.M, initialize=distanceMatrix)
model.x=Var(model.N,model.M, within=NonNegativeReals)
def obj_rule(model):            
    return sum(model.c[n,j]*model.x[n,j] for n in model.N for j in    model.M)
model.obj = Objective(rule=obj_rule,sense=minimize)
def con_rule(model, …
Run Code Online (Sandbox Code Playgroud)

python pyomo

2
推荐指数
1
解决办法
1633
查看次数