我有一个非常奇怪的数据结构,它是一个元组列表。每个元组有五个元素,其中第一个是标识字符串,其他四个是浮点数字符串(很奇怪,它们不仅仅是浮点数)。抱歉,我从其他人那里得到了这些数据。
我想平均第一个索引相同的 2-5 个数字的所有数字。例子:
[('ch', ' 0.8307', '0.8583', '0.8047', ' 0.969'),
('de', ' 0.721', '0.7529', '0.6917', ' 0.968'),
('en', ' 0.8441', '0.8732', '0.8168', ' 0.9569'),
('fn', ' 0.8207', '0.8574', '0.7870', ' 0.9609'),
('ch', ' 0.466', '0.572', '0.7733', ' 0.969'),
('de', ' 0.322', '0.385', '0.5431', ' 0.968'),
('sp', ' 0.7609', '0.7893', '0.7344', ' 0.9663'),
('ti', ' 0.8135', '0.8430', '0.7860', ' 0.9662')]
Run Code Online (Sandbox Code Playgroud)
输出应该只是将具有相同第一个索引的所有元素一起缩小并平均它们的值,所以它会是这样的(我没有在我的示例输出中对值进行平均):
[('ch', ' 0.8307', '0.8583', '0.8047', ' 0.969'),
('de', ' 0.721', '0.7529', '0.6917', ' 0.968'),
('en', ' 0.8441', '0.8732', '0.8168', …Run Code Online (Sandbox Code Playgroud) 我在 pandas 中有以下数据框:
data = {
'idx': [1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10],
'hue_val': ["A","A","A","A","A","A","A","A","A","A","B","B","B","B","B","B","B","B","B","B","C","C","C","C","C","C","C","C","C","C",],
'value': np.random.rand(30),
}
df = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)
现在我想通过每个“hue_val”的“idx”来绘制一个线图,其中包含该值的累积和。因此,最终将形成三条严格向上的曲线(因为它们是正数),一条代表“A”、“B”和“C”。
我在多个来源中找到了这段代码:
sns.lineplot(x="idx", y="value", hue="hue_val", data=df, estimator="cumsum")
Run Code Online (Sandbox Code Playgroud)
我正在通过stdin读取大量数字,我需要找到它,如果数字在[0,2 ^ 32]范围内(可能是2 ^ 32-1,我不确定那个),所以它是也不接受负数.还有一些情况下,有一个以数百个空值开头的数字,我需要忽略它.我确定如果我对数据类型做错了,目前我使用"long"作为数据类型,因为我认为这总是最多2 ^ 32.所以,如果有溢出,我得到一个负数,我可以证明长度是否小于0.但现在我意识到长的大小也取决于计算机的系统.
是否有人可以告诉我应该选择哪种数据类型和操作来证明这一点?开始的数据类型只是一个char指针.
我写了一个小示例问题来了解内存分配和释放内存(以防止内存泄漏):
#include <stdlib.h>
long* foo(char str[]) {
long *nums;
nums = calloc(2,sizeof(long));
//something is happening depending on what's inside the char[]
nums[0] = 57347534;
nums[1] = 84757;
return nums;
}
int main() {
char str1[400] = "This is a test";
long* retValue = foo(str1);
//some lines of checking content of "retValue"
char str2[400] = "This is another test";
retValue = foo(str2);
//some more lines of checking content of "retValue"
char str3[400] = "This is a final test";
retValue = foo(str3); …Run Code Online (Sandbox Code Playgroud) 我确实有些奇怪的事情.我想在国际象棋棋盘上按颜色对许多元素进行排序.这很容易(参见附件代码),所以如果x%2 == y%2为真,那么它是黑色的,如果不是白色的话.但那不是问题.我在数组的前面有一个元素,这有点不同(以后需要进行一些计算)并且需要保持原样.
是否可以在不触及第一个元素的情况下对数组进行排序?
int compareColour(const void * fs1, const void * fs2) {
Field *orderA = (Field *)fs1;
Field *orderB = (Field *)fs2;
bool isBlackB = ((orderA->x%2)==(orderA->y%2));
bool isBlackA = ((orderB->x%2)==(orderB->y%2));
return (isBlackB - isBlackA);
}
void sortByColour() {
qsort(fieldArr,(size_t) countFields, sizeof(Field), compareColour);
}
Run Code Online (Sandbox Code Playgroud) 我想我正在做一些非常错误的事情,但我需要向您展示我的想法。我想画一个类似 180 度的半圆,它有三种不同的颜色。但我不想让它被填写,我只想让它成为圆圈本身。我正在使用这段代码:
func addCirc(colour: UIColor, perc: CGFloat) {
let center = CGPoint(x: 150, y:150)
let radius = min(200, 200) / 2
let startAngle = 0 / 100 * CGFloat(Double.pi) * 2 - CGFloat(Double.pi)
let endAngle = perc / 100 * CGFloat(Double.pi) * 2 - CGFloat(Double.pi)
let path = UIBezierPath()
path.move(to: center)
path.addArc(withCenter: center, radius: CGFloat(radius), startAngle: startAngle, endAngle: endAngle, clockwise: true)
colour.setStroke()
path.close()
path.lineWidth = 20
path.stroke()
}
let leftColour = UIColor.red
let middleColour = UIColor.yellow
let rightColour = …Run Code Online (Sandbox Code Playgroud) 有没有一种有效的方法来检查列表是否包含与其他元素不同的元素?
我有很多这样的列表:
a = ["_", "_", "_", "_"]
b = ["_", "b", "_", "_"]
c = ["a", "_", "x", "_"]
Run Code Online (Sandbox Code Playgroud)
它们大多是下划线,但有时有一个元素不是下划线。我只想处理那些有“内容”的人。目前,我使用 for 循环检查是否存在非下划线元素。有没有更有效的方法?
我有一个haskell函数,看起来像这样:
x 1 = 1 :: Double
x n = ((n-1)/3 + 1/(n-1)) * ((x (n-1))^2) - (n-1)^3/3 + 1 :: Double
Run Code Online (Sandbox Code Playgroud)
不用考虑公式,它应该只加一个,所以x 2 = 2; x 3 = 3,依此类推。但是在Haskell中的结果是:
*Main> x 2
2.0
*Main> x 3
2.9999999999999996
*Main> x 4
3.9999999999999964
*Main>
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我,我需要在第二行中加上什么,以便将数字四舍五入到6个十进制数字吗?我不想解析为int!
谢谢!
我无法找到以下的好手册:如果我想在Haskell中获得功能的定义,那么我使用:t
So例如:
:t sqrt
:t (+)
:t truncate
Run Code Online (Sandbox Code Playgroud)
我会得到:
sqrt :: Floating a => a -> a
(+) :: Num a => a -> a -> a
truncate :: (RealFrac a, Integral b) => a -> b
Run Code Online (Sandbox Code Playgroud)
我只是不确定如何理解这里的语法,关于on =>和->.我知道::关于函数的定义,但其余的意思是关于函数定义.这对于理解一般的功能非常重要.