我正在处理文本字符串,如下所示:
LN1 2DW, DN21 5BJ, DN21 5BL, ...
在Python中,我如何计算逗号之间的元素数量?每个元素可以由6个,7个或8个字符组成,在我的示例中,显示了3个元素.分隔符始终是逗号.
我从未做过任何与文本挖掘有关的事情,所以这对我来说是一个开始.
当你想要绘制一个numpy数组时imshow,这就是你通常做的事情:
import numpy as np
import matplotlib.pyplot as plt
A=np.array([[3,2,5],[8,1,2],[6,6,7],[3,5,1]]) #The array to plot
im=plt.imshow(A,origin="upper",interpolation="nearest",cmap=plt.cm.gray_r)
plt.colorbar(im)
Run Code Online (Sandbox Code Playgroud)
在该图像中,简单地从阵列中每个值的位置提取x和y坐标.现在,假设这A是一个引用某些特定坐标的值数组:
real_x=np.array([[15,16,17],[15,16,17],[15,16,17],[15,16,17]])
real_y=np.array([[20,21,22,23],[20,21,22,23],[20,21,22,23]])
Run Code Online (Sandbox Code Playgroud)
这些价值构成了我的理由.有没有办法强制imshow在A对应的坐标对(real_x,real_y)中分配每个值?
PS:我不是在寻找向基于数组的x和y添加或减去某些东西以使它们与real_x和real_y匹配,而是用于从real_x和real_y数组中读取这些值的东西.然后,预期结果是具有x轴上的real_x值和y轴上的real_y值的图像.
我正在使用Python进行数据挖掘项目,在实验阶段我必须同时运行许多实验.我如何创建n流程,以便每个流程都专门用于实验?我应该使用哪个模块?
说我有一个这样的字典:
d={0:1, 1:2, 2:3, 10:4, 11:5, 12:6, 100:7, 101:8, 102:9, 200:10, 201:11, 202:12}
我想创建一个子词典d1的切片d中,这种方式d1包含以下键:0, 1, 2, 100, 101, 102.最终输出应该是:
d1={0:1, 1:2, 2:3, 100:7, 101:8, 102:9}
考虑到我的真实字典包含超过2,000,000个项目,是否有一种有效的Pythonic方法?
我认为这个问题适用于键是整数的所有情况,当切片需要遵循某些不等式规则时,以及当最终结果需要在同一个字典中放在一起时.
我需要生成一个有100x100节点的常规图形(也称为网格网络).我开始使用10x10以下代码绘制图形:
import numpy
from numpy import *
import networkx as nx
from networkx import *
import matplotlib.pyplot as plt
G=nx.grid_2d_graph(10,10)
nx.draw(G)
plt.axis('off')
plt.show()
Run Code Online (Sandbox Code Playgroud)
但我得到的是这个:
有没有办法摆脱输出的这种旋转效应?我的最终网络看起来像棋盘,就像这样(请忽略标签):
此外,我需要为每个节点提供其ID,范围从0到9999(在100x100网络的情况下).任何想法将不胜感激!
鉴于其中有一些不规则物体的图像,我想找到它们各自的直径.
感谢这个答案,我知道如何识别对象.但是,是否可以测量图像中显示的对象的最大直径?
我查看了scipy-ndimage文档,但没有找到专用函数.
对象识别代码:
import numpy as np
from scipy import ndimage
from matplotlib import pyplot as plt
# generate some lowpass-filtered noise as a test image
gen = np.random.RandomState(0)
img = gen.poisson(2, size=(512, 512))
img = ndimage.gaussian_filter(img.astype(np.double), (30, 30))
img -= img.min()
img /= img.max()
# use a boolean condition to find where pixel values are > 0.75
blobs = img > 0.75
# label connected regions that satisfy this condition
labels, nlabels = ndimage.label(blobs) …Run Code Online (Sandbox Code Playgroud) 假设我有3个相同长度的词典,我将它组合成一个独特的pandas数据帧.然后我将所述数据帧转储到Excel文件中.例:
import pandas as pd
from itertools import izip_longest
d1={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
d2={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
d3={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
dict_list=[d1,d2,d3]
stats_matrix=[ tuple('dict{}'.format(i+1) for i in range(len(dict_list))) ] + list( izip_longest(*([ v for k,v in sorted(d.items())] for d in dict_list)) )
stats_matrix.pop(0)
mydf=pd.DataFrame(stats_matrix,index=None)
mydf.columns = ['d1','d2','d3']
writer = pd.ExcelWriter('myfile.xlsx', engine='xlsxwriter')
mydf.to_excel(writer, sheet_name='sole')
writer.save()
Run Code Online (Sandbox Code Playgroud)
此代码生成具有唯一工作表的Excel文件:
>Sheet1<
d1 d2 d3
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何以这样的方式对这个数据帧进行切片:生成的Excel文件有3张,其中标题重复,每张表中有两行值?
编辑
在这里给出的例子中,dicts每个都有6个元素.在我的实际案例中,他们有25000,数据帧的索引从1.所以我想将这个数据帧切割成25个不同的子切片,每个子切片都被转储到同一主文件的专用Excel表中. …
我有以下数据框,其中pd.concat已用于对列进行分组:
a b
C1 C2 C3 C4 C5 C6 C7 C8
0 15 37 17 10 8 11 19 86
1 39 84 11 5 5 13 9 11
2 10 20 30 51 74 62 56 58
3 88 2 1 3 9 6 0 17
4 17 17 32 24 91 45 63 48
Run Code Online (Sandbox Code Playgroud)
现在我想绘制一个条形图,其中我只有两个类别(a和b),每个类别有四个条形代表每列的平均值.列C1和C5应该具有相同的颜色,列C2和C6应该具有相同的颜色,依此类推.
我怎么能用df.plot.bar()做到这一点?
该图应类似于下图.很抱歉它是手绘的,但我很难找到一个相关的例子:

编辑
这是我的实际DataFrame的标题:
C1 C2 C3 C4 C5 C6 C7 C8
0 34 …Run Code Online (Sandbox Code Playgroud) 假设您正在使用这两个词典:
a={(1,2):1.8,(2,3):2.5,(3,4):3.9} #format -> {(x,y):value}
b={10:(1,2),20:(2,3),30:(3,4)} #format -> {id:(x,y)}
Run Code Online (Sandbox Code Playgroud)
并且你想想出一个具有以下格式的字典:{id:value}. 在这个例子中,结果将是:
c={10:1.8,20:2.5,30:3.9}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了以下
c={k:j for k in b.keys() and j in a.values()}
Run Code Online (Sandbox Code Playgroud)
但结果显然是微不足道的
NameError: name 'j' is not defined
Run Code Online (Sandbox Code Playgroud)
这样做的最佳方法是什么?你如何“建模”通信?
计算(x, y)平面中两点之间距离的公式是公知且直截了当的.
但是,解决n点问题的最佳方法是什么,您想要计算平均距离?
例:
import matplotlib.pyplot as plt
x=[89.86, 23.0, 9.29, 55.47, 4.5, 59.0, 1.65, 56.2, 18.53, 40.0]
y=[78.65, 28.0, 63.43, 66.47, 68.0, 69.5, 86.26, 84.2, 88.0, 111.0]
plt.scatter(x, y,color='k')
plt.show()
Run Code Online (Sandbox Code Playgroud)
距离简单地呈现为:
import math
dist=math.sqrt((x2-x1)**2+(y2-y1)**2)
Run Code Online (Sandbox Code Playgroud)
但这是一个不允许重复组合的问题.怎么接近它?
python ×10
dictionary ×2
key ×2
matplotlib ×2
numpy ×2
pandas ×2
slice ×2
bar-chart ×1
categories ×1
combinations ×1
comma ×1
dataframe ×1
excel ×1
geometry ×1
grid ×1
hashable ×1
imshow ×1
key-value ×1
list ×1
ndimage ×1
networkx ×1
rotation ×1
text ×1
text-mining ×1