这是如何在C++ 0x中完成的?
std::vector<double> myv1;
std::transform(myv1.begin(), myv1.end(), myv1.begin(),
std::bind1st(std::multiplies<double>(),3));
Run Code Online (Sandbox Code Playgroud)
原始问题和解决方案就在这里.
我想在我的数据中标记一些分位数,并且对于DataFrame的每一行,我希望在名为"xtile"的新列中输入以保存此值.
例如,假设我创建了一个这样的数据框:
import pandas, numpy as np
dfrm = pandas.DataFrame({'A':np.random.rand(100),
'B':(50+np.random.randn(100)),
'C':np.random.randint(low=0, high=3, size=(100,))})
Run Code Online (Sandbox Code Playgroud)
让我们说我编写自己的函数来计算数组中每个元素的五分位数.我有自己的功能,但是例如只需要参考scipy.stats.mstats.mquantile.
import scipy.stats as st
def mark_quintiles(x, breakpoints):
# Assume this is filled in, using st.mstats.mquantiles.
# This returns an array the same shape as x, with an integer for which
# breakpoint-bucket that entry of x falls into.
Run Code Online (Sandbox Code Playgroud)
现在,真正的问题是如何使用transform
向数据添加新列.像这样的东西:
def transformXtiles(dataFrame, inputColumnName, newColumnName, breaks):
dataFrame[newColumnName] = mark_quintiles(dataFrame[inputColumnName].values,
breaks)
return dataFrame
Run Code Online (Sandbox Code Playgroud)
然后:
dfrm.groupby("C").transform(lambda x: transformXtiles(x, "A", "A_xtile", [0.2, 0.4, 0.6, 0.8, 1.0]))
Run Code Online (Sandbox Code Playgroud)
问题是上面的代码不会添加新列"A_xtile".它只是保持我的数据框不变.如果我首先添加一个充满虚拟值的列,例如NaN,称为"A_xtile",那么它会 …
好吧,让我们说你有类型
newtype Dual f a = Dual {dual :: forall r. f(a -> r)->r}
Run Code Online (Sandbox Code Playgroud)
事实证明,什么时候f
是Comonad,Dual f
是Monad(有趣的运动).它是否相反?
您可以定义fmap ab (Dual da) = Dual $ \fb -> da $ fmap (. ab) fb
和extract (Dual da) = da $ return id
,但我不知道如何定义duplicate
或extend
.
这甚至可能吗?如果没有,那么证据不存在(是否有一个特定的Monad m
,你可以证明Dual m
它不是一个comonad)?
一些观察:
Dual IO a
基本上Void
(并且Const Void
是有效的Comonad
).
Dual m a
为MonadPlus m
是 Void
(只使用dual mzero
). …
我有2个std :: string.我只是想,给定输入字符串:
为什么这样有效:
std::string s="hello";
std::string out;
std::transform(s.begin(), s.end(), std::back_inserter(out), std::toupper);
Run Code Online (Sandbox Code Playgroud)
但这不会(导致程序崩溃)?
std::string s="hello";
std::string out;
std::transform(s.begin(), s.end(), out.begin(), std::toupper);
Run Code Online (Sandbox Code Playgroud)
因为这有效(至少在相同的字符串上:
std::string s="hello";
std::string out;
std::transform(s.begin(), s.end(), s.begin(), std::toupper);
Run Code Online (Sandbox Code Playgroud) 我正在开发一个目录,该目录使用css -transform属性在悬停时缩放每个'swatch'.
这是我的问题:在某些浏览器和某些网站上,当您将鼠标悬停在样本上时,会导致页面在翻转时"闪烁".我无法解决这个问题,在一个网站上它可能是Safari的独特之处,另一个网站可能只发生在Chrome中,另一个网站则完全没问题.
希望我有更多的信息,但也许其他人遇到了类似的问题.
.swatch {
-webkit-box-shadow: #EFEFEF 2px 2px 0px;
-webkit-transform: scale(1);
-webkit-transition-duration: 0.2s;
border: 1px solid white;
position: relative;
z-index: 1;
.swatch:hover {
position:relative;
z-index:10;
transition-duration: 0.2s;
transform:scale(1.8);
-webkit-transition-duration: 0.2s;
-webkit-transform:scale(1.8);
}
Run Code Online (Sandbox Code Playgroud)
在删除任何z-index属性时似乎也解决了问题,但是悬停样本在其他样本后面; 这对这个项目不起作用.
任何想法都表示赞赏.
background-attachment: fixed
在Firefox中关闭CSS值转换.
这是一个例子
div {
transform: translate3d(0,0,0); // if remove starts to work
width: 100%;
height: 2000px;
background-image: url('http://www.wallpapereast.com/static/images/001_Fish-Wallpaper-HD_hkNsK33.jpg');
background-size: cover;
background-attachment: fixed;
}
Run Code Online (Sandbox Code Playgroud)
<div></div>
Run Code Online (Sandbox Code Playgroud)
如果你从CSS中删除转换它开始工作.仅可在FF中重现.
我正在使用CSS 3D转换来缩放div,例如:
-webkit-transform: scale3d(2,2,1);
Run Code Online (Sandbox Code Playgroud)
缩放本身在任何WebKit浏览器中都能正常工作.但是,在Safari(移动设备或Windows)上使用此功能时,不会重新呈现div的内容.结果是缩放后内容变得模糊.
仅在使用3D变换时才会出现此效果.使用时一切正常
-webkit-transform: scale(2);
.
为了在iPhone/iPad上利用硬件加速,使用3D转换会很不错.
有人知道怎么告诉Safari用新的比例重新渲染div吗?
我正在寻找最快的距离变换算法.
根据这个网站http://homepages.inf.ed.ac.uk/rbf/HIPR2/distance.htm,它描述了:"距离变换可以使用聪明的算法在两次通过中更有效地计算(例如Rosenfeld和Pfaltz 1968)."
搜索周围,我发现:"Rosenfeld,A和Pfaltz,J L. 1968.数字图片上的距离函数.模式识别,1,33-61."
但我相信我们应该拥有比1968年更好更快的算法?事实上,我找不到1968年的来源,所以任何帮助都受到高度赞赏.
一种尝试的方法是使用TexturePaint
和g.fillRect()
绘制图像.然而,这需要您在每次绘制图像时创建一个新的TexturePaint和Rectangle2D对象,这是不理想的 - 并且无论如何都没有帮助.
当我使用时g.drawImage(BufferedImage,...)
,旋转的图像看起来模糊/柔和.
我熟悉RenderingHints和双缓冲(我认为这就是我正在做的事情),我发现很难相信你不能轻易有效地在Java中旋转产生尖锐结果的图像.
使用代码TexturePaint
看起来像这样.
Grahics2D g2d = (Graphics2D)g;
g2d.setPaint(new TexturePaint(bufferedImage, new Rectangle2D.Float(0,0,50,50)));
g2d.fillRect(0,0,50,50);
Run Code Online (Sandbox Code Playgroud)
我正在用AffineTransform
一把牌旋转成一个风扇.什么是快速绘制好看图像的最佳方法?
这是一个截图:
9是清脆的,但其余的卡肯定不那么尖锐.
问题可能出在我创建每张卡片图像并将其存储在数组中时.
这就是我现在正在做的事情:
// i from 0 to 52, card codes.
...
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gs = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gs.getDefaultConfiguration();
BufferedImage img = gc.createCompatibleImage(86, 126, Transparency.TRANSLUCENT);
Graphics2D g = img.createGraphics();
setRenderingHints(g);
g.drawImage(shadow, 0, 0, 86, 126, null);
g.drawImage(white, 3, 3, 80, 120, null);
g.drawImage(suit, 3, 3, 80, …
Run Code Online (Sandbox Code Playgroud) 当我们使用CSS3时transform: operation1(...) operation2(...)
,首先完成哪一个?
第一次操作似乎是最右边的操作.,即此处operation2
已完成operation1
.只是为了确定,这是真的吗?
注意:我在某些地方读过一件事,反之亦然(答案,互联网上的文章),这就是问题所在.