草庐IT

Python 数组到一维向量

是否有一种pythonic方法可以将结构化数组转换为向量?例如:我正在尝试像这样转换一个数组:[(9,),(1,),(1,12),(9,),(8,)]像这样的向量:[9,1,1,12,9,8] 最佳答案 In[15]:importnumpyasnpIn[16]:x=np.array([(9,),(1,),(1,12),(9,),(8,)])In[17]:np.concatenate(x)Out[17]:array([9,1,1,12,9,8])另一个选项是np.hstack(x),但为此目的,np.concatenate更快:In[

python - 比较使用随机数生成的 Matlab 和 Numpy 代码

有没有办法让numpy中的随机数生成器在给定相同种子的情况下生成与Matlab中相同的随机数?我在Matlab中尝试了以下方法:>>rng(1);>>randn(2,2)ans=0.9794-0.5484-0.2656-0.0963在带有Numpy的iPython中执行以下操作:In[21]:importnumpyasnpIn[22]:np.random.seed(1)In[23]:np.random.randn(2,2)Out[23]:array([[1.624,-0.612],[-0.528,-1.073]])两个数组中的值不同。或者有人可以提出一个好主意来比较使用随机数生成的同一

python - 如何在 python 中计算质心

我是Python编码的初学者。我正在处理结构坐标。我有pdb结构,它有xyz坐标信息(最后三个列)ATOM1NSERA127.1307.77034.390ATOM21HSERA127.9907.76034.930ATOM32HSERA127.1606.96033.790ATOM43HSERA127.1708.58033.790ATOM5CASERA125.9407.78035.250ATOM6CBSERA125.9809.09036.020ATOM7OGSERA126.74010.10035.320ATOM8HGSERA126.75010.94035.860ATOM9CSERA124.

python - 在numpy中用零填充数组

h=numpy.zeros((2,2,2))最后2个是做什么用的?它是在创建一个多维数组还是什么?输出:array([[[0.,0.],[0.,0.]],[[0.,0.],[0.,0.]]])如果它正在创建副本数,那么当我执行以下操作时会发生什么情况?h=numpy.zeros((2,2,1))输出:array([[[0.],[0.]],[[0.],[0.]]])我知道它被零填充了,前两个值指定了行和列,那么第三个呢?先感谢您。我试过谷歌,但我无法表达我的问题。 最佳答案 通过提供三个参数,您将创建一个三维数组:numpy.arra

带有 scipy.spatial.Delaunay 的 Python 凸包,如何消除船体内的点?

我在名为pointsList的np.array中有一个3D点列表,值为float:[[1.,2.,10.],[2.,0.,1.],[3.,6.,9.],[1.,1.,1.],[2.,2.,2.],[10.,0.,10.],[0.,10.,5.],...etc.此代码对点云进行Delaunay三角剖分:importnumpyasnpimportscipy.spatialtri=scipy.spatial.Delaunay(pointsList)#Delaunaytriangulationindices=tri.simplices#indicesofverticesvertices=poi

python - 使用 numpy 将数组写入标准输出

将Numpy二维数组写入标准输出的惯用方法是什么?例如我有一个数组a=numpy.array([[2.,0.,0.],[0.,2.,0.],[0.,0.,4.]])[[2.0.0.][0.2.0.][0.0.4.]]我希望输出为:2.00.00.00.02.00.00.00.04.0我可以通过转换为嵌套列表,然后加入列表元素来做到这一点:print('\n'.join([''.join([str(e)foreinrow])forrowina.tolist()]))但是想要这样的东西:a.tofile(sys.stdout)(除非这给出了语法错误)。 最佳答案

python - 追加到 numpy 数组的最佳方式

我有一个numpy数组,我可以简单地使用append将一个项目附加到它,如下所示:numpy.append(myarray,1)在这种情况下,我只是附加了整数1。但这是追加到数组的最快方法吗?我有一个很长的数组,可以达到数万。还是索引数组直接赋值比较好?像这样:myarray[123]=1 最佳答案 附加到numpy数组是非常低效的。这是因为解释器需要在每一步都为整个数组查找和分配内存。根据应用的不同,还有更好的策略。如果事先知道长度,最好使用类似np.ones的函数预先分配数组。,np.zeros,或np.empty.desire

python - 使用 numpy 将矩阵乘以点数组?

我有一个数组,其中包含一堆点(特别是3D向量):pts=np.array([[1,1,1],[2,2,2],[3,3,3],[4,4,4],[5,5,5],])我想将这些点中的每一个乘以一个变换矩阵:pts[0]=np.dot(transform_matrix,pts[0])pts[1]=np.dot(transform_matrix,pts[1])…pts[n]=np.dot(transform_matrix,pts[n])我怎样才能有效地做到这一点? 最佳答案 我发现首先编写einsum版本会有所帮助——在您看到索引后,您通常可

python - NumPy 随机种子产生不同的随机数

我运行以下代码:np.random.RandomState(3)idx1=np.random.choice(range(20),(5,))idx2=np.random.choice(range(20),(5,))np.random.RandomState(3)idx1S=np.random.choice(range(20),(5,))idx2S=np.random.choice(range(20),(5,))我得到的输出如下:idx1:array([2,19,19,9,4])idx1S:array([2,19,19,9,4])idx2:array([9,2,7,10,6])idx2S:

python - 基于 numpy 的计算的低效多处理

我正在尝试在Python的multiprocessing模块的帮助下并行化一些使用numpy的计算。考虑这个简化的例子:importtimeimportnumpyfrommultiprocessingimportPooldeftest_func(i):a=numpy.random.normal(size=1000000)b=numpy.random.normal(size=1000000)foriinrange(2000):a=a+bb=a-ba=a-breturn1t1=time.time()test_func(0)single_time=time.time()-t1print("S