我在本地 win7 机器上构建了一个 Web 应用程序。我用 pycharm 做到了,并使用 git 作为版本控制。我是一个完全的 git 新手。
我将存储库放在 github 上,以便我可以将 web 应用程序暂存到我的 pythonanywhere 服务器。
在 pythonanywhere 方面,我对各种文件进行了一些小的编辑。我想将这些更改提交回存储库。
(udemy) 10:44 ~/keystone (master)$ git commit -m "got it running on pythonanywhere staging"
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
modified: keystone/settings/base.py
modified: keystone/settings/local_postgres.py
modified: keystone/settings/staging_straits.py
deleted: p0150_1.pdf
Untracked files:
crapboard/__pycache__/
crapboard/migrations/__pycache__/
crapboard/templatetags/__pycache__/
keystone/__pycache__/
keystone/settings/__pycache__/
no changes added to commit
Run Code Online (Sandbox Code Playgroud)
我想将三个修改的文件和一个删除提交到存储库。
所以我做了
(udemy) 14:03 ~/keystone (master)$ git add --all
(udemy) 14:03 ~/keystone …
Run Code Online (Sandbox Code Playgroud) 该示例显示:
我创建一个简单的模块(斐波那契计算器)我启动pycharm控制台,导入模块,在控制台内运行函数,它的工作原理.现在我在模块中编辑一些打印文本.回到控制台并运行"import fibagain"
控制台似乎没有抱怨就这样做了.但是当我运行fib()函数时,它仍然给我早期版本的结果.我无法让控制台看到fibagain.py文件的更新版本.如果我删除控制台并再次打开它,那么'import fibagain',运行fib(3)将给我最新版本.
抱歉,但不允许在此处发布正确的图片链接.这个地址显示了screencapture:
我生成了一个matplotlib 3d曲面图.我只需要在图上看到矩阵的上三角形一半,因为另一半是多余的.
np.triu()使矩阵零的冗余一半,但我更喜欢如果我可以使它们为Nans,那么这些单元格在表面图上根本不显示.
什么是pythonic方式来填充NaN而不是零?我无法使用NaN进行搜索和替换0,因为零将出现在我想要显示的合法数据中.
通过一个滑动窗口示例为numpy.试图了解,None
的start_idx = np.arange(B[0])[:,None]
foo = np.arange(10)
print foo
print foo[:]
print foo[:,]
print foo[:,None]
Run Code Online (Sandbox Code Playgroud)
的效果None
似乎是转置阵.
[0 1 2 3 4 5 6 7 8 9]
[0 1 2 3 4 5 6 7 8 9]
[0 1 2 3 4 5 6 7 8 9]
[[0]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]]
Run Code Online (Sandbox Code Playgroud)
但我不完全确定.我无法找到解释第二个参数(None
)的内容的文档.这也是google的一个难点.该numpy的阵列文档让我觉得它是与先进的索引,但我不能肯定不够.
我有一个2d numpy数组.A
我想应用于np.bincount()
矩阵的每一列A
来生成另一个2d数组B
,该数组由原始矩阵的每列的bincounts组成A
.
我的问题是np.bincount()是一个类似于1d数组的函数.它不是像B = A.max(axis=1)
例如的数组方法.
B
除了令人讨厌的for-loop之外,还有更多的pythonic/numpythic方法来生成这个数组吗?
import numpy as np
states = 4
rows = 8
cols = 4
A = np.random.randint(0,states,(rows,cols))
B = np.zeros((states,cols))
for x in range(A.shape[1]):
B[:,x] = np.bincount(A[:,x])
Run Code Online (Sandbox Code Playgroud) 我有一个mark_area
以明显荒谬的顺序堆叠的图表。我更喜欢将最大的层放在底部,并在上面减少。
这是图表的图片,标有首选顺序:
我试图制作一个玩具示例:
import random
import altair as alt
seed = {"date": pd.date_range('1/1/2019',periods=20,freq="M"),
"jack": random.sample(range(100, 500), 20),
"roy":random.sample(range(20, 90), 20),
"bill":random.sample(range(600, 900), 20),
}
df = pd.DataFrame.from_dict(seed)
df = df.melt(id_vars="date", var_name="person", value_name="measure")
alt.renderers.enable('notebook')
alt.Chart(df).mark_area().encode(
x=alt.X(
'date',
),
y=alt.Y(
'measure',
),
color='person',
)
Run Code Online (Sandbox Code Playgroud)
这会自动生成如下图表:
我尝试重复使用在别处找到的一些咒语,但它们无声无息。我使用“升序”还是“降序”没有区别:
alt.Chart(df).mark_area().encode(
x=alt.X(
'date',
),
y=alt.Y(
'measure',
sort=alt.EncodingSortField(
field="measure",
op="sum",
order="ascending")
),
color='person',
)
Run Code Online (Sandbox Code Playgroud) 我有一个 CHAR 列,其中包含对打印整数的凌乱 OCR 扫描。
我需要在该列上执行 SUM() 运算符。但我无法正确投射。
;Good
sqlite> select CAST("123" as integer);
123
;No Good, should be '323999'
sqlite> select CAST("323,999" as integer);
323
Run Code Online (Sandbox Code Playgroud)
我相信SQLite的解释逗号作为标志着“结束的值可能的最长前缀可以解释为一个整数”
我更愿意避免编写 python 脚本来对本专栏进行数据清理的痛苦。有没有什么聪明的方法可以严格地使用 SQL 来做到这一点?
我有一个带有基于营业日的DateTimeIndex的pandas数据帧.对于索引中的每个月,我还指定了一个"标记"日.
这是该数据帧的玩具版本:
# a dataframe with business dates as the index
df = pd.DataFrame(list(range(91)), pd.date_range('2015-04-01', '2015-6-30'), columns=['foo']).resample('B').last()
# each month has an single, arbitrary marker day specified
marker_dates = [df.index[12], df.index[33], df.index[57]]
Run Code Online (Sandbox Code Playgroud)
对于索引中的每个月,我需要计算foo
该月特定行中行的列的平均值.
我需要两种不同的方式来指定这些切片:
1)每天到第n天.
示例可能是(该月的第2至第4个工作日).所以四月平均为1(apr2),4(apr3)和5(apr 6)= 3.33.可能是33(可能4),34(可能5),35(可能是6)= 34.我不认为指数中没有出现的周末/假日为天.
2)标记日期之前/之后的第n天至标记日期之前/之后的第n天.
示例可以是"从标记日期之前1天到每个月中标记日期之后1天的切片的平均值"例如.4月,标记日期为17Apr.看看该指数,我们想要平均值为apr16,apr17和apr20.
对于示例1,我有一个丑陋的解决方案,在那个月我将切掉那个月的行,然后应用 df_slice.iloc[m:n].mean()
每当我开始用熊猫做迭代的事情时,我总是怀疑我做错了.所以我想有一种更干净,更pythonic /矢量化的方式来制作这个月的结果
对于示例2,我不知道基于多个月的任意日期进行切片平均的好方法.
努力设置我的轴标签的颜色。
base = alt.Chart(xf.loc['2017':].reset_index(), title="trouble").encode(
x='Date'
)
rigs = base.mark_line(color='blue').encode(
alt.Y('Total Oil Rigs', scale=alt.Scale(zero=False),axis=alt.Axis( title='I should BLUE'))
)
prod = base.mark_line(color='green').encode(
alt.Y('US Crude Production', scale=alt.Scale(zero=False),axis=alt.Axis( title='I should be GREEN'))
)
alt.layer(
rigs,
prod
).resolve_scale(
y='independent'
).configure_axisLeft(labelColor='blue').configure_axisRight(labelColor='green')
Run Code Online (Sandbox Code Playgroud)
我可以使用configure_axisLeft/Right()
函数设置 #2 和 #3 ,但我找不到设置轴标题颜色的方法(#1、#4)。我也没有在altair.Axis文档中看到一个选项。
我在 Altair 中生成折线图。我想控制哪些行位于行堆栈的“顶部”。在我的示例中,我希望红线位于顶部(最新日期),然后下降到黄色(最旧日期)位于底部。
我试图用sort
of 的参数来控制它alt.Color
,但无论sort='ascending'
或sort='descending'
线重叠的顺序都不会改变。
我怎样才能控制这个?希望我可以在不对源数据帧本身进行排序的情况下完成此操作。
data = [{'review_date': dt.date(year=2022, month=2, day=24), 'a':19, 'b':17, 'c':12, 'd':8},
{'review_date': dt.date(year=2022, month=2, day=23), 'a':20, 'b':16, 'c':14, 'd':8},
{'review_date': dt.date(year=2022, month=2, day=22), 'a':22, 'b':16, 'c':14, 'd':10},
{'review_date': dt.date(year=2022, month=2, day=21), 'a':14, 'b':13, 'c':12, 'd':5},]
df = pd.DataFrame(data).melt(id_vars=['review_date'], value_name='price', var_name='contract')
df.review_date = pd.to_datetime(df.review_date)
domain = df.review_date.unique()
range_ = ['red', 'blue', 'gray', 'yellow']
alt.Chart(df, title='foo').mark_line().encode(
x=alt.X('contract:N'),
y=alt.Y('price:Q',scale=alt.Scale(zero=False)),
color=alt.Color('review_date:O', sort="ascending", scale=alt.Scale(domain=domain, range=range_) )
).interactive()
Run Code Online (Sandbox Code Playgroud)