草庐IT

python - 如何更改 numpy recarray 某些列的数据类型?

假设我有一个recarray,如下所示:importnumpyasnp#exampledatafrom@unutbu'sanswerrecs=[('Bill','31',260.0),('Fred',15,'145.0')]r=np.rec.fromrecords(recs,formats='S30,i2,f4',names='name,age,weight')print(r)#[('Bill',31,260.0)('Fred',15,145.0)]假设我想将某些列转换为float。我该怎么做呢?我应该更改为ndarray并将它们改回recarray吗? 最

python - 用numpy乘以高阶矩阵

我创造了这个反射(reflect)我更大问题的玩具问题:importnumpyasnpind=np.ones((3,2,4))#shape=(3L,2L,4L)dist=np.array([[0.1,0.3],[1,2],[0,1]])#shape=(3L,2L)ans=np.array([np.dot(dist[i],ind[i])foriinxrange(dist.shape[0])])#shape=(3L,4L)printans"""prints:[[0.40.40.40.4][3.3.3.3.][1.1.1.1.]]"""我想尽快完成,所以使用numpy的函数来计算ans应该是

python - 使用 numpy 执行外加法

抱歉,如果这是一个愚蠢的问题,但我才刚刚开始使用python/numpy,我真的不确定最有效的方法。我正在为一些学生组装一个演示N体模拟器,但目前,我正在通过遍历那些可以预测与糖蜜一样慢的粒子的位置来计算粒子之间的力。基本上,给定一个向量x[i],我想计算:n[i]=sumfromj=0ton-1,j!=iof(x[i]-x[j])^-2,使用numpy函数而不是循环。如果有一种方法可以执行外部加法/乘法:m[i,j]=x[i]-x[j],m[i,j]=x[i]*x[j],我可以用它来进行计算。 最佳答案 所有接受两个输入参数的通用

python - Matplotlib 数字图像作为 numpy 数组

我正在尝试从Matplotlib图形中获取一个numpy数组图像,我目前正在通过保存到一个文件,然后读回文件来实现它,但我觉得必须有更好的方法。这是我现在正在做的事情:frommatplotlib.backends.backend_aggimportFigureCanvasAggasFigureCanvasfrommatplotlib.figureimportFigurefig=Figure()canvas=FigureCanvas(fig)ax=fig.gca()ax.text(0.0,0.0,"Test",fontsize=45)ax.axis('off')canvas.print

python - 用于计算矩阵未成年人的 Numpy 例程?

我对使用numpy计算给定方阵的所有未成年人感兴趣。有没有一种巧妙的方法可以使用数组切片来做到这一点?我想象可以旋转列、删除最后一列、旋转结果矩阵的行并删除最后一行,但我在numpy文档中没有找到任何表明这是可能的内容。(问:为什么这样做?答:我有一个相当大的矩阵的长序列{M_n},大约有1,000,00010,000x10,000个矩阵,我想计算每个矩阵的行列式。每个矩阵都是从其前身获得的通过只改变一个系数。计算序列中第一个矩阵的行列式,然后计算差值det(M_{n+1})-det(M_n)会快很多,它是乘积变化的系数及其次要的。) 最佳答案

python - 从两个向量的差异填充 numpy 矩阵

是否可以从一个函数构造一个numpy矩阵?在这种情况下,函数是两个向量的绝对差值:S[i,j]=abs(A[i]-B[j])。使用常规python的最小工作示例:importnumpyasnpA=np.array([1,3,6])B=np.array([2,4,6])S=np.zeros((3,3))fori,xinenumerate(A):forj,yinenumerate(B):S[i,j]=abs(x-y)给予:[[1.3.5.][1.1.3.][4.2.0.]]有一个看起来像这样的结构会很好:defbuild_matrix(shape,input_function,*args)

python - Py2Exe,[Errno 2] 没有那个文件或目录 : 'numpy-atlas.dll'

我在我的程序中包含了matplotlib,我在谷歌上搜索了numpy_atlas.dll,我似乎是地球上唯一遇到这个问题的人。设置.pyfromsetuptoolsimportsetupimportpy2exesetup(console=['EulerMethod.py'])运行Py2Exe结果出错C:\(..obmitted..)>pythonsetup.pypy2exerunningpy2exe***searchingforrequiredmodules******parsingresults***.........obmitted.........***findingdllsne

python - 在 Amazon EC2 上安装 numpy

我在AmazonEC2服务器上安装numpy时遇到问题。我尝试在虚拟环境中使用easy_install、pip、pip,在另一个使用python2.7的虚拟环境中使用pip...每次我尝试时,它都会失败并出现错误:gcc:internalcompilererror:Killed(programcc1),然后再往下我会得到一堆python错误,使用easy_installIget:ImportError:Nomodulenamednumpy.distutils,使用pip我得到:UnicodeDecodeError:'ascii'codeccan'tdecodebyte0xe2inpos

python - 如何用 numpy 数组中的值替换一列?

我有一个这样的数组importnumpyasnpa=np.zeros((2,2),dtype=np.int)我想用值1替换第一列。我做了以下事情:a[:][0]=[1,1]#notworkinga[:][0]=[[1],[1]]#notworking相反,当我替换行时它起作用了!a[0][:]=[1,1]#working我有一个大数组,所以我无法按值替换值。 最佳答案 您可以按如下方式替换第一列:>>>a=np.zeros((2,2),dtype=np.int)>>>a[:,0]=1>>>aarray([[1,0],[1,0]])此

Python numpy 数组的 numpy 数组

我在创建numpy数组的numpy数组时遇到了问题。我会在循环中创建它:a=np.array([])while(...):...b=//anumpyarraygenerateda=np.append(a,b)...期望的结果:[[1,5,3],[9,10,1],...,[4,8,6]]实际结果:[1,5,3,9,10,1,...4,8,6]这可能吗?我不知道数组的最终维度,所以我无法用固定的维度来初始化它。 最佳答案 永远不要在循环中附加到numpy数组:这是NumPy与基本Python相比非常不擅长的操作。这是因为您在每次appe