我在Python中有一个对象列表,我想要将它们混洗.我以为我可以使用该random.shuffle
方法,但当列表是对象时,这似乎失败了.是否有一种方法可以改变对象或其他方式?
import random
class A:
foo = "bar"
a1 = a()
a2 = a()
b = [a1, a2]
print(random.shuffle(b))
Run Code Online (Sandbox Code Playgroud)
这将失败.
我创建了一些python代码,它在循环中创建一个对象,并在每次迭代中用相同类型的新对象覆盖该对象.这样做了10.000次,Python每秒占用7mb的内存,直到我使用3gb的RAM.有没有人知道从内存中删除对象的方法?
我可以运行iPython,但是当我尝试启动笔记本时出现以下错误:
~ ipython notebook
Traceback (most recent call last):
File "/usr/local/bin/ipython", line 8, in <module>
load_entry_point('ipython==2.1.0', 'console_scripts', 'ipython')()
File "/Library/Python/2.7/site-packages/ipython-2.1.0-py2.7.egg/IPython/__init__.py", line 120, in start_ipython
return launch_new_instance(argv=argv, **kwargs)
File "/Library/Python/2.7/site-packages/ipython-2.1.0-py2.7.egg/IPython/config/application.py", line 563, in launch_instance
app.initialize(argv)
File "<string>", line 2, in initialize
File "/Library/Python/2.7/site-packages/ipython-2.1.0-py2.7.egg/IPython/config/application.py", line 92, in catch_config_error
return method(app, *args, **kwargs)
File "/Library/Python/2.7/site-packages/ipython-2.1.0-py2.7.egg/IPython/terminal/ipapp.py", line 321, in initialize
super(TerminalIPythonApp, self).initialize(argv)
File "<string>", line 2, in initialize
File "/Library/Python/2.7/site-packages/ipython-2.1.0-py2.7.egg/IPython/config/application.py", line 92, in catch_config_error
return method(app, *args, **kwargs)
File "/Library/Python/2.7/site-packages/ipython-2.1.0-py2.7.egg/IPython/core/application.py", line 381, in initialize …
Run Code Online (Sandbox Code Playgroud) 我在Python中创建了一个多维数组,如下所示:
self.cells = np.empty((r,c),dtype=np.object)
Run Code Online (Sandbox Code Playgroud)
现在我想迭代我的二维数组的所有元素,我不关心顺序.我该如何实现这一目标?
RubyMotion已经发布了,我想知道,如果有类似的解决方案,或者是Python?
我正在使用Swing编写Java应用程序.我正在尝试实现保存和加载模拟状态的功能,以便我正在运行的模拟.整个模拟作为对象保持不变,与Swing断开连接.我正在尝试使用以下代码序列化我的Simulation类:
public void saveSimulationState(String simulationFile) {
try {
Serializable object = this.sm;
ObjectOutputStream objstream = new ObjectOutputStream(new FileOutputStream(simulationFile));
objstream.writeObject(object);
objstream.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到以下错误(这是巨大的).
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at java.io.ObjectStreamClass.processQueue(ObjectStreamClass.java:2234)
at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:266)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.ArrayList.writeObject(ArrayList.java:570)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.ArrayList.writeObject(ArrayList.java:570)
at …
Run Code Online (Sandbox Code Playgroud) 我有一个大的稀疏numpy/scipy矩阵,其中每一行对应于高维空间中的一个点.我想要进行以下类型的查询:
给定一个点P(矩阵中的行)和距离小量,找到距离的所有点,最小量从P.
我使用的距离度量是Jaccard相似度,因此应该可以使用MinHash等Locality Sensitive Hashing技巧.
在某处(我似乎无法找到一个)稀疏numpy数组是否有MinHash的实现,或者有一种简单的方法可以做到这一点?
我不仅仅是为Github上的非稀疏数组提取内容的原因是scipy中的稀疏数据结构可能会导致时间复杂度的爆炸.
我正在MATLAB中编写一些机器学习代码,我用一个邻接矩阵A表示一个图形,并用以下列方式定义矩阵Z的图形聚类.
答:如果节点i和节点j之间存在边缘,则a_ij为1.否则为0.Z:如果节点j在簇i中,则z_ij为1.否则为0.
我正在计算一个矩阵N,它是簇之间的边数,按以下方式定义:
N:n_ij是集群i中的节点与集群j中的节点之间的边数.n_ii是簇i内的边数.
N可以通过以下公式计算:
N = zAz'
Run Code Online (Sandbox Code Playgroud)
其中z'是z转置的.
如果我有很多节点,那么计算这需要一些时间,但这不是问题.问题是,我将节点从群集移动到群集很多次,每次我想要计算N.
所以问题如下:鉴于我知道N,然后我将节点i从集群c_1移动到集群c_2,如何以有效的方式更新N?
这是一个非常简单的问题,但我似乎无法在这里找到一些相关信息.我想从C文件中读取两个整数.我的代码现在是这样的:
int main() {
FILE *fp;
int s[80];
int t;
if((fp=fopen("numbers", "r")) == NULL) {
printf("Cannot open file.\n");
} else {
fscanf(fp, "%d%d", s, &t);
printf("%d %d\n", s[0], s[1]);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我从文件中得到第一个整数,但下一个只是一个随机数.我的文件是这样的:
100 54
Run Code Online (Sandbox Code Playgroud)
提前致谢
我正在尝试编译以下代码:http://www-personal.umich.edu/~mejn/dcbm/KLOptimization.cpp
但是我从g ++收到以下错误消息:
> Undefined symbols for architecture x86_64: "_gsl_rng_uniform_int",
> referenced from:
> Initialize() in ccDEqovL.o
> _main in ccDEqovL.o "_gsl_rng_default_seed", referenced from:
> _main in ccDEqovL.o "_gsl_rng_default", referenced from:
> _main in ccDEqovL.o "_gsl_rng_alloc", referenced from:
> _main in ccDEqovL.o "_gsl_rng_name", referenced from:
> _main in ccDEqovL.o "_gsl_rng_get", referenced from:
> _main in ccDEqovL.o "_gsl_rng_uniform", referenced from:
> _main in ccDEqovL.o "ComputeVI()", referenced from:
> _main in ccDEqovL.o "ComputeNMI()", referenced from:
> _main in ccDEqovL.o …
Run Code Online (Sandbox Code Playgroud)