我有一个清单 ['','','',['',[['a','b']['c']]],[[['a','b'],['c']]],[[['d']]]]
我想用索引展平列表,输出应如下所示:
flat list=['','','','','a','b','c','a','b','c','d']
indices=[0,1,2,3,3,3,3,4,4,4,5]
Run Code Online (Sandbox Code Playgroud)
这该怎么做?
我已经试过了:
def flat(nums):
res = []
index = []
for i in range(len(nums)):
if isinstance(nums[i], list):
res.extend(nums[i])
index.extend([i]*len(nums[i]))
else:
res.append(nums[i])
index.append(i)
return res,index
Run Code Online (Sandbox Code Playgroud)
但这不能按预期工作。
我有一个小的 2d 矢量要显示:
import matplotlib.pyplot as plt
import numpy as np
img = np.random.rand(4,10)
plt.imshow(img, cmap='Reds')
Run Code Online (Sandbox Code Playgroud)
如下:
但现在我想标记一个特定的单元格,以便让读者将注意力集中在那个单元格上。因为这是特别感兴趣的......
因此,像这个单元格的边框会很好:
有人知道如何以matplotlib方便的方式存档吗?
我在将Python 3.6类中的变量分配给特定类型(Pathlib路径)时遇到麻烦。按照link的示例,我尝试创建一个TypeVar,但mypy仍然抛出错误。我想确保__init__.py仅在初始化时初始化的类变量在编译时就接收到特定类型。因此,这只是一项检查,以确保我不会无意中为这些类变量设置字符串或其他内容。
有人可以建议正确的方法吗?
这是一些简单的代码。
import pathlib
from typing import Union, Dict, TypeVar, Type
Pathtype = TypeVar('Pathtype', bound=pathlib.Path)
class Request:
def __init__(self, argsdict):
self._dir_file1: Type[Pathtype] = argsdict['dir_file1']
self._dir_file2: Type[Pathtype] = argsdict['dir_file2']
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
Request.py:13: error: Invalid type "Request.Pathtype"
Request.py:14: error: Invalid type "Request.Pathtype"
Run Code Online (Sandbox Code Playgroud) 这是一个非常笼统的问题,我正在寻求解决方案,以应对以下情况:
我经常发现自己在数据框中创建了一个额外的列,并且我想使用类似以下的内容:
df['new_col'] = df['old_col_1']+df['old_col_2']
Run Code Online (Sandbox Code Playgroud)
但是,除非操作非常简单,否则它会给出“ TypeError:无法将序列转换为[class'whatever']类”,因此我必须使用笨拙的方法。例:
df = pd.DataFrame({'Year':[2018,2017,2016,2017,2016,2018,2018],'Month':[1,1,1,2,2,2,3],
'Value':[521,352,32,125,662,123,621]})
Run Code Online (Sandbox Code Playgroud)
我想要一个“日期”列,并且最终这样做:
from datetime import datetime as dt
df['Date'] = None
for i in df.index:
df1.loc[i,'Date'] = dt(df1.loc[i,'Year'],df1.loc[i,'variable'],1)
Run Code Online (Sandbox Code Playgroud)
在其他情况下,我发现自己在做:
datelist = []
for i in df.index:
datelist.append(dt(df1.loc[i,'Year'],df1.loc[i,'variable'],1))
df['Date'] = datelist
Run Code Online (Sandbox Code Playgroud)
显然,这只是一个示例,在很多情况下,我最终都会使用这两种方法。我是否正确地认为这些方法不是pythonic的?基于其他列生成稍微复杂的列的更好方法是什么?