我有两个大小相同的numpy ndarray。
a = np.random.randn(x,y)
b = np.random.randn(x,y)
我想创建一个新数组,其中每个元素都是a
和b
中具有相同索引的元素值之间的随机值。因此,每个元素c[i][j]
应该在a[i][j]
和b[i][j]
之间。
除了遍历c
的所有元素并分配随机值之外,还有没有更快,更简单/更有效的方法?
答案 0 :(得分:3)
您可以这样做:
awk 'gsub(/^SEARCH/,"LINE 1\nLINE 2"){s=1}END{if(!s)print "LINE 1\nLINE 2"}1' file | tee file
with d =随机数组,其值在0到1之间,且尺寸与a相同
答案 1 :(得分:2)
您可以从文档中使用numpy.random.uniform:
low:float或float的array_like,可选
输出间隔的下边界。生成的所有值将是 大于或等于低。默认值为0。
high:float或float的array_like
输出间隔的上限。生成的所有值将是 不到高。默认值为1.0。
因此var now = DateTime.UtcNow;
var currentDate = now.Date;
var tomorrow = currentDate.AddDays(1);
var left = currentDate.ToUnixTimeSeconds();
var right = tomorrow.ToUnixTimeSeconds();
var results = await Settings.DataBase.GetCollection<Video>("Videos")
.Find(x => x.ViewsToday != null &&
x.ViewsToday.Date >= left &&
x.ViewsToday.Date < right)
.ToListAsync();
和low
都可以接收数组作为参数,为完整起见,请参见以下代码:
代码:
high
输出
import numpy as np
x, y = 5, 5
a = np.random.randn(x, y)
b = np.random.randn(x, y)
high = np.maximum(a, b)
low = np.minimum(a, b)
c = np.random.uniform(low, high, (x, y))
print((low <= c).all() and (c <= high).all())
在上面的示例中,请注意使用maximum和minimum来构建True
和high
。最后一行检查确实所有low
的值都在c
和high
之间。如果您感兴趣,则可以单行完成所有操作:
low
答案 2 :(得分:2)
以下是使用 public static class DiffEngine
{
private static Regex r = new Regex(@"(?<=[\s])", RegexOptions.Compiled);
public static string Process(ref string TextA, ref string TextB)
{
var A = r.Split(TextA);
var B = r.Split(TextB);
var max = Math.Max(A.Count(), B.Count());
var sbDel = new StringBuilder("<del>");
var sbIns = new StringBuilder("<ins>");
var sbOutput = new StringBuilder();
var aCurr = string.Empty;
var bCurr = string.Empty;
var aNext = string.Empty;
var bNext = string.Empty;
for (int i = 0; i < max; i++)
{
aCurr = (i > A.Count() - 1) ? string.Empty : A[i];
bCurr = (i > B.Count() - 1) ? string.Empty : B[i];
aNext = (i > A.Count() - 2) ? string.Empty : A[i + 1];
bNext = (i > B.Count() - 2) ? string.Empty : B[i + 1];
if (aCurr == bCurr)
{
sbOutput.Append(aCurr);
}
else
{
if (aNext != bNext)
{
sbDel.Append(aCurr);
sbIns.Append(bCurr);
}
else
{
sbDel.Append(aCurr);
sbIns.Append(bCurr);
sbOutput
.Append(sbDel.ToString())
.Append("</del>")
.Append(sbIns.ToString())
.Append("</ins>");
sbDel.Clear().Append("<del>");
sbIns.Clear().Append("<ins>");
}
}
}
A = null;
B = null;
sbDel = null;
sbIns = null;
return sbOutput.ToString();
}
}
的想法:
numpy