我有一个像这样的numpy数组[1,1,1,-1,-1,1,-1,1,1,-1,-1,-1,1,-1]我想找到最长的连续系列的长度为1s或-1s.在示例中,它应该是3
solve(-14.4*(x**2)+71.8*x+5.083, x)
Run Code Online (Sandbox Code Playgroud)
结果是无。怎么会?我手工计算得出两个根,5.0559 和 -0.063
我有一个任意深度嵌套的列表,具有不同长度的元素
my_list = [[[1,2],[4]],[[4,4,3]],[[1,2,1],[4,3,4,5],[4,1]]]
Run Code Online (Sandbox Code Playgroud)
我想通过用NaN填充每个轴来将其转换为有效的数字(非对象)numpy数组.所以结果应该是这样的
padded_list = np.array([[[ 1, 2, nan, nan],
[ 4, nan, nan, nan],
[nan, nan, nan, nan]],
[[ 4, 4, 3, nan],
[nan, nan, nan, nan],
[nan, nan, nan, nan]],
[[ 1, 2, 1, nan],
[ 4, 3, 4, 5],
[ 4, 1, nan, nan]]])
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
我正在使用keras 1.0.1我正在尝试在LSTM上添加注意层.这是我到目前为止所做的,但它不起作用.
input_ = Input(shape=(input_length, input_dim))
lstm = GRU(self.HID_DIM, input_dim=input_dim, input_length = input_length, return_sequences=True)(input_)
att = TimeDistributed(Dense(1)(lstm))
att = Reshape((-1, input_length))(att)
att = Activation(activation="softmax")(att)
att = RepeatVector(self.HID_DIM)(att)
merge = Merge([att, lstm], "mul")
hid = Merge("sum")(merge)
last = Dense(self.HID_DIM, activation="relu")(hid)
Run Code Online (Sandbox Code Playgroud)
网络应在输入序列上应用LSTM.然后,应将LSTM的每个隐藏状态输入到完全连接的层,在该层上应用Softmax.softmax被复制用于每个隐藏的维度,并且元素地乘以LSTM隐藏状态.然后应对得到的矢量求平均值.
编辑:这编译,但我不确定它是否做了我认为应该做的事情.
input_ = Input(shape=(input_length, input_dim))
lstm = GRU(self.HID_DIM, input_dim=input_dim, input_length = input_length, return_sequences=True)(input_)
att = TimeDistributed(Dense(1))(lstm)
att = Flatten()(att)
att = Activation(activation="softmax")(att)
att = RepeatVector(self.HID_DIM)(att)
att = Permute((2,1))(att)
mer = merge([att, lstm], "mul")
hid = AveragePooling1D(pool_length=input_length)(mer)
hid = Flatten()(hid)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ExifInterface更改exif标签.我使用setAttribute()并调用saveAttributes().标签暂时保存,然后下一次旧值仍然存在且尚未更新................
例:
ExifInterface exifInterface = new ExifInterface(filePath);
String o1 = exifInterface.readAttribute(TAG_ORIENTATION); //o1 is "0"
exifInterface.setAttribute(TAG_ORIENTATION, "90");
exifInterface.saveAttributes();
String o2 = exifInterface.readAttribute(TAG_ORIENTATION); //o2 is "90"
// relaunch app, read attribute for same photo
String o3 = exifInterface.readAttribute(TAG_ORIENTATION); //o3 is "0" again, sould be "90"
Run Code Online (Sandbox Code Playgroud) 我有这样的数据集:
[[0,1],
[0,2],
[0,3],
[0,4],
[1,5],
[1,6],
[1,7],
[2,8],
[2,9]]
Run Code Online (Sandbox Code Playgroud)
我需要删除第一列定义的数据的每个子视图的第一个元素.所以首先我得到第一列中有0的所有元素,并删除第一行:[0,1].然后我在第一列中得到1的元素并删除第一行[1,5],下一步我删除[2,8],依此类推.最后,我想有一个像这样的数据集:
[[0,2],
[0,3],
[0,4],
[1,6],
[1,7],
[2,9]]
Run Code Online (Sandbox Code Playgroud)
编辑:这可以在numpy中完成吗?我的数据集非常大,因此所有元素的循环至少需要4分钟才能完成.
在numpy我有一个像这样的数据集.前两列是索引.我可以通过索引将我的数据集划分为块,即第一个块是0 0秒块是0 1个第三个块0 2然后是1个,1个,1个等等,依此类推.每个块至少有两个元素.索引列中的数字可以变化
我需要随机地沿着这些块分割数据集80%-20%,这样在分割后,两个数据集中的每个块都至少有1个元素.我怎么能这样做?
indices | real data
|
0 0 | 43.25 665.32 ... } 1st block
0 0 | 11.234 }
0 1 ... } 2nd block
0 1 }
0 2 } 3rd block
0 2 }
1 0 } 4th block
1 0 }
1 0 }
1 1 ...
1 1
1 2
1 2
2 0
2 0
2 1
2 1
2 1
...
Run Code Online (Sandbox Code Playgroud) 我有一个时间戳数组,对于矩阵X的第二列中的每一行都会增加.我计算时间戳的平均值,它大于最大值.我正在使用numpy memmap进行存储.为什么会这样?
>>> self.X[:,1]
memmap([ 1.45160858e+09, 1.45160858e+09, 1.45160858e+09, ...,
1.45997146e+09, 1.45997683e+09, 1.45997939e+09], dtype=float32)
>>> np.mean(self.X[:,1])
1.4642646e+09
>>> np.max(self.X[:,1])
memmap(1459979392.0, dtype=float32)
>>> np.average(self.X[:,1])
1.4642646e+09
>>> self.X[:,1].shape
(873608,)
>>> np.sum(self.X[:,1])
memmap(1279193195216896.0, dtype=float32)
>>> np.sum(self.X[:,1]) / self.X[:,1].shape[0]
memmap(1464264515.9120522)
Run Code Online (Sandbox Code Playgroud)
编辑:我在这里上传了memmap文件.http://www.filedropper.com/x_2这是我加载它的方式.
filepath = ...
shape = (875422, 23)
X = np.memmap(filepath, dtype="float32", mode="r", shape=shape)
# I preprocess X by removing rows with all 0s
# note this step doesn't affect the problem
to_remove = np.where(np.all(X == 0, axis=1))[0]
X = np.delete(X, to_remove, axis=0)
Run Code Online (Sandbox Code Playgroud)