我想在图像中存储一些元数据.我的相机应用程序给了我一个位图,我将其存储在存储(MediaStore)设备中.除此之外,我想在其元数据中为图片添加一些标签.我认为EXIF是一种很好的方法.但我找不到关于如何做到这一点的好参考.
如果有一些工具可以在Android编程中完成此任务,请告诉我.
谢谢
在pandas数据框架上,我知道我可以在一列或多列上进行分组,然后过滤多于/少于给定数字的值.
但我想在数据帧的每一列上都这样做.我想删除过于频繁的值(假设发生的次数少于5%)或过于频繁.例如,考虑一个包含以下列的数据框:city of origin, city of destination, distance, type of transport (air/car/foot), time of day, price-interval.
import pandas as pd
import string
import numpy as np
vals = [(c, np.random.choice(list(string.lowercase), 100, replace=True)) for c in
'city of origin', 'city of destination', 'distance, type of transport (air/car/foot)', 'time of day, price-interval']
df = pd.DataFrame(dict(vals))
>> df.head()
city of destination city of origin distance, type of transport (air/car/foot) time of day, price-interval
0 f p a n
1 k b …Run Code Online (Sandbox Code Playgroud) 我正在使用Anaconda 4.10.3, with Python 3.9.7, Scipy 1.7.1on Ubuntu 16.04.6。我需要运行的脚本使用 Scipy 的优化,并抛出以下错误:
ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version 'GLIBCXX_3.4.26' not found (required by /home/user/anaconda3/envs/work/lib/python3.9/site-packages/scipy/optimize/_group_columns.cpython-39-x86_64-linux-gnu.so)
Run Code Online (Sandbox Code Playgroud)
如错误所示,系统libstcc++.so.6不提供GLIBCXX_3.4.26,我使用它进行了验证
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
Run Code Online (Sandbox Code Playgroud)
然后我运行conda install libgcc并验证strings /home/user/anaconda3/envs/work/lib/libstdc++.so.6.0.29 | grep GLIBCXX显示GLIBCXX_3.4.26。然后我将以下行添加到我的.bashrc并运行source ~/.bashrc
LD_LIBRARY_PATH=/home/user/anaconda3/envs/work/lib/:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)
当我在此之后运行脚本时,我仍然收到相同的错误 ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version 'GLIBCXX_3.4.26' not found。
我正在考虑降级 scipy,但是难道没有更好的方法可以在不降级的情况下解决这个问题吗?
在python 2.7,OSX上使用pandas 0.16.2.
我从csv文件中读取了一个数据帧,如下所示:
import pandas as pd
data = pd.read_csv("my_csv_file.csv",sep='\t', skiprows=(0), header=(0))
Run Code Online (Sandbox Code Playgroud)
输出data.dtypes是:
name object
weight float64
ethnicity object
dtype: object
Run Code Online (Sandbox Code Playgroud)
我期待名字和种族的字符串类型.但我在这里找到了理由,说明为什么他们在新的熊猫版本中是"对象".
现在,我想根据种族选择行,例如:
data[data['ethnicity']=='Asian']
Out[3]:
Empty DataFrame
Columns: [name, weight, ethnicity]
Index: []
Run Code Online (Sandbox Code Playgroud)
我用data[data.ethnicity=='Asian']或 得到相同的结果data[data['ethnicity']=="Asian"].
但是,当我尝试以下内容时:
data[data['ethnicity'].str.contains('Asian')].head(3)
Run Code Online (Sandbox Code Playgroud)
我得到了我想要的结果.
但是,我不想使用"包含" - 我想检查直接相等.
请注意,data[data['ethnicity'].str=='Asian']引发错误.
难道我做错了什么?怎么做到这一点?
如文档页面所述,Twitter API允许更新“正在验证用户的当前状态” 。
我要实现的是更新另一个用户的当前状态。考虑杂志的推特帐户。我希望其他人能够更新杂志的状态。Tweetdeck允许这样做,但是它还允许很多其他事情,例如访问直接消息。我只想为某些经过身份验证的用户提供一个界面(类似于Twitter的“发布后发布”界面),以将状态和图像发布到共享帐户。
我找不到有关如何使用Twitter API实现上述功能的简单说明。有人可以帮忙吗?
使用Scikit-learn(v 0.15.2)对大型稀疏矩阵进行非负矩阵分解(小于1%值> 0).我想通过最小化矩阵的非零值上的错误来找到因子(即,不计算零的条目的错误),并且有利于稀疏性.我不确定我正在尝试的是否有什么问题.scikit-learn包的NMF和ProjectedGradientNMF以前对我有用.但似乎当矩阵大小增加时,因子分解非常缓慢.
我在谈论> 10 ^ 10个细胞的基质.对于具有~10 ^ 7个单元的矩阵,我发现执行时间是好的.
我使用的参数如下:nmf_model = NMF(n_components = 100, init='nndsvd', random_state=0, tol = 0.01, sparseness='data').
当我尝试稍微不同的参数(更改为init=random)时,我收到以下警告.警告之后,脚本的执行停止.
/lib/python2.7/site-packages/sklearn/decomposition/nmf.py:252: UserWarning: Iteration limit reached in nls subproblem.
warnings.warn("Iteration limit reached in nls subproblem.")
Run Code Online (Sandbox Code Playgroud)
有没有办法让这更快,并解决上述问题?我已经尝试过使用numpy稀疏矩阵(列稀疏和行稀疏),但令人惊讶的是 - 在测试中我使用较小的矩阵(~10 ^ 7个单元格)进行测试的速度较慢.
考虑到必须运行这种因子分解的多次迭代(选择理想数量的因子和k倍交叉验证),非常需要更快的方法来解决这个问题.
我也愿意接受不基于sklearn或Pyhon的软件包/工具的建议.我理解不鼓励有关包/工具选择的问题,但对于这样一个特定的用例,了解该领域其他人使用的技术将非常有帮助.
python numpy sparse-matrix scikit-learn matrix-factorization
我想基于某些属性值对Java TreeMap进行排序.具体来说,我想TreeMap<Integer, Hashset<Integer>>根据大小来排序Hashset<Integer>.为实现这一目标,我做了以下工作:
比较类:
private static class ValueComparer implements Comparator<Integer> {
private Map<Integer, HashSet<Integer>> map = null;
public ValueComparer (Map<Integer, HashSet<Integer>> map){
super();
this.map = map;
}
@Override
public int compare(Integer o1, Integer o2) {
HashSet<Integer> h1 = map.get(o1);
HashSet<Integer> h2 = map.get(o2);
int compare = h2.size().compareTo(h1.size());
if (compare == 0 && o1!=o2){
return -1;
}
else {
return compare;
}
}
}
Run Code Online (Sandbox Code Playgroud)
一个用法示例:
TreeMap<Integer, HashSet<Integer>> originalMap = new TreeMap<Integer, HashSet<Integer>>();
//load keys and values into …Run Code Online (Sandbox Code Playgroud)