我发现numpy数组的astype()方法效率不高.我有一个包含300万Uint8点的数组.将它乘以3x3矩阵需要2秒,但将结果从uint16转换为uint8需要另一秒.
更确切地说 :
print time.clock()
imgarray = np.dot(imgarray, M)/255
print time.clock()
imgarray = imgarray.clip(0, 255)
print time.clock()
imgarray = imgarray.astype('B')
print time.clock()
Run Code Online (Sandbox Code Playgroud)
点积和缩放需要2秒
剪辑需要200毫秒类型转换需要1秒
考虑到其他业务所花费的时间,我希望astype会更快.是否有更快的方式进行类型转换,或者在猜测类型转换不应该那么难时我错了吗?
编辑:目标是将最终的8位数组保存到文件中
我必须在我的XSLT文件中包含一个C#脚本.以便计算两个dateTime值之间的差异(并将其添加到其他一些值)..我 需要接受所有可能的日期格式 ..我想是用XSLT来做..但是因为XSLT不允许这样做(含蓄地)..我发现了调用C#脚本的这种补救措施..我必须从许多不同的C#程序中调用XSL转换..所以它会是在所有调用C#代码中写这段代码是痛苦的(相当不可能).. :(你能找到一些补救措施吗?
这是XSLT代码..
<xsl:variable name="date1" select="//date1"/>
<xsl:variable name="date2" select="//date2"/>
<msxsl:script language="C#" implements-prefix="cs">
<![CDATA[
private static string[] formats = new string[]
{
"MM/dd/yyyy HH:mm:ss tt",
"MM/dd/yyyy HH:mm:ss",
"MM/dd/yyyy H:mm:ss tt",
"MM/dd/yyyy H:mm:ss",
"M/dd/yyyy HH:mm:ss tt",
"M/dd/yyyy HH:mm:ss",
"M/dd/yyyy H:mm:ss tt",
"M/dd/yyyy H:mm:ss",
"MM/d/yyyy HH:mm:ss tt",
"MM/d/yyyy HH:mm:ss",
"MM/d/yyyy H:mm:ss tt",
"MM/d/yyyy H:mm:ss",
"M/d/yyyy HH:mm:ss tt",
"M/d/yyyy HH:mm:ss",
"M/d/yyyy H:mm:ss tt",
"M/d/yyyy H:mm:ss",
};
public string datedif(string date1, string date2) {
DateTime startTime;
DateTime endTime;
DateTime ThirdDate;
string …Run Code Online (Sandbox Code Playgroud) 有没有办法为vb脚本中的函数创建可选参数,允许您编写类似于...的函数
myFunc("happy")
myFunc("happy", 1, 2, 3)
myFunc("happy", 1)
etc.
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,Spring管理数据库访问的连接池.Hibernate使用这些连接进行查询.乍一看,我对池没有任何问题:它可以与并发客户端和只有一个连接的池一起正常工作.我可以执行很多查询,所以我认为我(或Spring)不会留下开放的连接.
我的问题在一段时间不活动后出现(有时30分钟,有时超过2小时).然后,当Hibernate进行一些搜索时,它会持续太多.将log4j级别设置为TRACE,我得到这个日志:
...
18:27:01 DEBUG nsactionSynchronizationManager - Retrieved value [org.springframework.orm.hibernate3.SessionHolder@99abd7] for key [org.hibernate.impl.SessionFactoryImpl@7d2897] bound to thread [http-8080-Processor24]
18:27:01 DEBUG HibernateTransactionManager - Found thread-bound Session [org.hibernate.impl.SessionImpl@8878cd] for Hibernate transaction
18:27:01 DEBUG HibernateTransactionManager - Using transaction object [org.springframework.orm.hibernate3.HibernateTransactionManager$HibernateTransactionObject@1b2ffee]
18:27:01 DEBUG HibernateTransactionManager - Creating new transaction with name [com.acjoventut.service.GenericManager.findByExample]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
18:27:01 DEBUG HibernateTransactionManager - Preparing JDBC Connection of Hibernate Session [org.hibernate.impl.SessionImpl@8878cd]
18:27:01 TRACE SessionImpl - setting flush mode to: AUTO
18:27:01 DEBUG JDBCTransaction - begin
18:27:01 DEBUG ConnectionManager - opening JDBC connection
Run Code Online (Sandbox Code Playgroud)
在这里冻结约2-10分钟.但接着继续: …
我有一个下拉列表:
<select id="HowYouKnow" >
<option value="1">FRIEND</option>
<option value="2">GOOGLE</option>
<option value="3">AGENT</option></select>
Run Code Online (Sandbox Code Playgroud)
在上面的下拉列表中,我知道下拉列表的文本.如何使用jquery使用文本设置document.ready中下拉列表的值?
我有以下问题.我联系了一个我知道使用301重定向的地址.
使用HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create(lcUrl);
,loHttp.AllowAutoRedirect = false;所以我没有重定向.
现在我得到响应的标题以识别新的URL.
运用 loWebResponse.GetResponseHeader("Location");
问题是,由于此URL包含希腊字符,因此返回的字符串全部混乱(由于编码).
完整图片代码:
HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create(lcUrl);
loHttp.ContentType = "application/x-www-form-urlencoded";
loHttp.Method = "GET";
Timeout = 10000;
loHttp.AllowAutoRedirect = false;
HttpWebResponse loWebResponse = (HttpWebResponse)loHttp.GetResponse();
string url= loWebResponse.Headers["Location"];
Run Code Online (Sandbox Code Playgroud) 如果我想转到我可以使用的页面上的"whatever_id",我如何使用link_to来正常转到页面上的特定(html)ID
<a href="http://www.example.com/index/mypage#whatever_id>Click Here</a>
Run Code Online (Sandbox Code Playgroud)
但我想使用我的link_to
<%= link_to "click here" , {:action => "mypage", :controller => "index" }, :id => "#whatever_id"%>
Run Code Online (Sandbox Code Playgroud)
辅助方法.有谁知道如何做到这一点?可能吗?
Rails 2.3.4
我想创建一个UINavigationController的子类,它总是以相同的根控制器开始.没什么特别的,所以(对我来说)覆盖这样的init方法是完全合理的:
- (id) init {
rootController = [[MyController alloc] init];
if (self = [super initWithRootViewController:rootController]) {
// do some more initialization
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
这显然会产生一个问题,因为[super initWithRootViewController]将调用[UINavigationController init],这当然是我们重写的init方法,因此将发生无限递归.
我不想创建一个名为"initCustom"的不同名称的init方法.
目前我只能提出一个解决方案,但我真的讨厌这种黑客攻击:
- (id) init {
if (initCalled)
return self;
initCalled = YES;
rootController = [[MyController alloc] init];
if (self = [super initWithRootViewController:rootController]) {
// do some more initialization
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:有更好的方法来处理这个问题吗?我确定我错过了一些非常明显的东西,但我没有看到它.
编辑:我想这样做的原因,我可以在下面的评论中看到:
我想创建一个始终以特定视图控制器开始的导航控制器.我想把这个隐藏在班级的消费者手中.无需暴露不需要暴露的东西.让生活变得更轻松,编码更清晰(封装发明的原因之一,对吧?)
我有一个移动应用程序,我想安全地存储私钥.安全要求意味着即使攻击者无限制地访问移动设备,攻击者也很难获得私钥.为了实现这种安全级别,应用程序采用对称加密技术,其密钥源自用户指定的密码短语和特定于设备的盐.
理想情况下,这应该足够安全,以防止暴力攻击; 但有两个限制因素:
由于私钥必须符合某种格式,因此解密过程可以测试进程的结果以查看它是否有效.例如,如果私钥是RSA私钥,则攻击者将尝试密码短语和测试的各种组合,以查看他是否可以将生成的明文用作有效的RSA私钥.由于RSA私钥必须以某种方式编码某些信息,如果解密失败,RSA引擎将发信号通知该密钥无效.这为攻击者提供了一种完全脱机的方式来验证他的攻击.优选的是,攻击者应该不能够告诉,不与服务器进行通信,如果他的解密尝试是成功还是失败.
由于应用程序在移动设备上运行,密钥衍生功能的复杂性增加对密钥加强没有帮助,因为可以在具有更丰富资源的功能更强的设备上进行对移动设备具有完全访问权限的离线攻击.很快,密钥导出函数的计算轮次数的任何增加都会减慢用户体验(可接受某个限制),但如果要在台式计算机上执行攻击,则会立即阻止.
有人能为我提供这些问题的解决方案吗?具体来说,是否有人知道非对称加密算法,其中私钥可以是任何随机字节序列(它可以是固定长度序列,无关紧要),算法仍然能够产生密文?
我想向 Windows 窗体添加折叠/展开功能。
这是内置在分离器控件中的吗?是否有此 UI 技术的教程?
我想到的直接项目是一个简单的 UI,Windows 窗体。它有3个面板,一个在顶部,一个在中间,一个在底部。我希望能够完全折叠中间面板,但仍可将其用于扩展。
我看到了 SO 问题,
为桌面应用程序寻找 Visual Studio 工具箱样式导航
..这更多是关于带有可拖动组件的工具箱。我不在乎可拖动的能力。我想要的是一个可折叠的表单区域,VS 中的工具箱和其他元素可折叠的方式,IE8 收藏夹面板可固定或可折叠的方式。