我有一个熊猫数据框,我想将对角线设置为0
import numpy
import pandas
df = pandas.DataFrame(numpy.random.rand(5,5))
df
Out[6]:
0 1 2 3 4
0 0.536596 0.674319 0.032815 0.908086 0.215334
1 0.735022 0.954506 0.889162 0.711610 0.415118
2 0.119985 0.979056 0.901891 0.687829 0.947549
3 0.186921 0.899178 0.296294 0.521104 0.638924
4 0.354053 0.060022 0.275224 0.635054 0.075738
5 rows × 5 columns
现在我想将对角线设置为0:
for i in range(len(df.index)):
for j in range(len(df.columns)):
if i==j:
df.loc[i,j] = 0
df
Out[9]:
0 1 2 3 4
0 0.000000 0.674319 0.032815 0.908086 0.215334
1 0.735022 0.000000 0.889162 0.711610 0.415118
2 0.119985 0.979056 0.000000 0.687829 0.947549
3 0.186921 0.899178 0.296294 0.000000 0.638924
4 0.354053 0.060022 0.275224 0.635054 0.000000
5 rows × 5 columns
但是必须有比这更Python化的方式!?
In [21]: df.values[[np.arange(df.shape[0])]*2] = 0
In [22]: df
Out[22]:
0 1 2 3 4
0 0.000000 0.931374 0.604412 0.863842 0.280339
1 0.531528 0.000000 0.641094 0.204686 0.997020
2 0.137725 0.037867 0.000000 0.983432 0.458053
3 0.594542 0.943542 0.826738 0.000000 0.753240
4 0.357736 0.689262 0.014773 0.446046 0.000000
请注意,这仅df
在行数与列数相同时起作用。适用于任意形状的另一种方法是使用np.fill_diagonal:
In [36]: np.fill_diagonal(df.values, 0)
问题内容: 将DataFrame设置为redis之后,再将其取回,redis返回一个字符串,但我想不出一种将该str转换为DataFrame的方法。 我该如何适当地做这两个? 问题答案: 组: 得到:
可能聪明的你已经发现了魔方矩阵各行或列数字相加后的奇妙属性,无论是各行相加,还是各列相加,还是两条对角线的数字相加,都得到同一个结果。下面让我们用MATLAB来证实这一结论。首先试着输入 sum(A) MATLAB显示 ans = 34 34 34 34 如果你没有指定变量,MATLAB就会用变量ans(answer的缩写),来储存计算的结果。这里显示的是一个行
Since 8.0 setOptionMenu 设置标题栏右边的按钮属性。 该接口仅负责设置,需要额外调用showOptionMenu保证该按钮的显示。 注意:由于苹果的ATS限制,icon URL必须为https链接或base64,http链接会被忽略 使用方法 AlipayJSBridge.call('setOptionMenu', { title : '按钮', // 与icon、ic
问题内容: 我试图用d3.js为s svg:image(嵌入SVG中的图像)制作圆角。我找不到如何正确设置图像样式的方法,因为根据W3C规范,我应该可以使用CSS,但是较宽的边框或圆角的边缘对我来说都是有效的。 提前致谢。 编辑: 经过测试的浏览器:Firefox,Chrome 问题答案: “边界半径”不适用于svg:image元素(无论如何)。一种解决方法是创建带有圆角的矩形,并使用剪切路径。
给定主教在8*8棋盘上的位置,任务是计算主教一次可以访问的方格总数。主教的位置用棋盘的行和列编号表示。 例如: 方法:在国际象棋比赛中,主教只能沿对角线移动,并且每一步的距离没有限制。 所以,我们也可以说Bishop可以从当前位置以四种方式移动,即对角左上角、右上角、左下角和右下角。 我们可以通过以下方法计算每次移动中访问的方块数: 在左上角移动中访问的总方块= 右上角移动中访问的总方块= 在左下
我有几个可行的解决方案,首先测量视图并以此方式设置角的大小,但随后我发现使用了对象。 但是,我仍然找不到XML中的解决方案。