草庐IT

python - 使用类似形状的函数获取一维 numpy.array 的 "1"

在一个函数中,我给出了一个Numpy数组:它可以是多维的,也可以是一维的所以当我给出一个多维数组时:np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]).shape>>>(3,4)和np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]).shape[1]>>>4很好。但是当我问的形状np.array([1,2,3,4]).shape>>>(4,)和np.array([1,2,3,4]).shape[1]>>>IndexError:tupleindexoutofrange糟糕,元组只包含一个元素...而我想要1来指示它

python - 如何获得一维 numpy 数组中所有元素的乘积

我有一个一维NumPy数组:a=numpy.array([2,3,3])我想要所有元素的乘积,在本例中为18。我能找到的唯一方法是:b=reduce(lambdax,y:x*y,a)看起来很漂亮,但速度不是很快(我经常需要这样做)。是否有一个numpy方法可以做到这一点?如果不是,最有效的方法是什么?我的真实世界数组有39个浮点元素。 最佳答案 在NumPy中你可以尝试:numpy.prod(a)对于更大的数组numpy.arange(1,40)/10.:array([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,

python - 如何在 Python 中集成两个一维数据数组?

我有两个表格数据数组,x和y,但我不知道生成数据的函数。我希望能够计算数据在x轴上任意点生成的直线的积分。与其对数据插值一个分段函数,然后尝试对其进行积分,这让我遇到了麻烦,有什么我可以使用的东西可以通过评估数组来简单地提供积分吗?在搜索解决方案时,我看到了对iPython和Pandas的引用,但我无法找到这些包中有助于完成此任务的部分。如果没有简单集成阵列的方法,您能否就处理此任务的最佳方法提供一些建议? 最佳答案 Scipyhassomenicetoolstoperformnumericalintegration.例如,您可以使

python - 如何在 Python 中将嵌套列表转换为一维列表?

这个问题在这里已经有了答案:Flattenanirregular(arbitrarilynested)listoflists(50个答案)关闭7个月前。我尝试了一切(据我所知)从拆分数组到将它们连接在一起甚至使用itertools:importitertoolsdefoneDArray(x):returnlist(itertools.chain(*x))我想要的结果:a)printoneDArray([1,[2,2,2],4])==[1,2,2,2,4]奇怪的是,它适用于b)printoneDArray([[1,2,3],[4,5,6],[7,8,9]])==[1,2,3,4,5,6,

python - 将图像 ( png ) 转换为矩阵,然后转换为一维数组

我有5张图片,我想将每个图像转换为一维数组并将其作为矢量放入矩阵中。我希望能够再次将每个矢量转换为图像。img=Image.open('orig.png').convert('RGBA')a=np.array(img)我不熟悉numpy的所有功能,想知道是否还有其他工具可以使用。谢谢。 最佳答案 importnumpyasnpfromPILimportImageimg=Image.open('orig.png').convert('RGBA')arr=np.array(img)#recordtheoriginalshapeshape

python - 如何使用 Pandas 将二维表 (DataFrame) 反转为一维列表?

我正在Python/Pandas中寻找将二维表反转为一维列表的技巧。我通常利用Excel函数来执行此操作,但我相信有一种智能的Python方法来执行此操作。步骤Excel方式的更多细节:http://www.extendoffice.com/documents/excel/2461-excel-reverse-pivot-table.html 最佳答案 此类操作也可以使用pd.melt完成,它取消了DataFrame的透视。如果DataFramedf看起来像这样:rowlabelsTueWedThuSatSunFriMon0Appl

python - 针对 lexsort : Permutation for sorting each column independently when considering yet another vector 的二维数组广播一维数组

考虑数组anp.random.seed([3,1415])a=np.random.randint(10,size=(5,4))aarray([[0,2,7,3],[8,7,0,6],[8,6,0,2],[0,4,9,7],[3,2,4,3]])我可以创建b,其中包含对每一列进行排序的排列。b=a.argsort(0)barray([[0,0,1,2],[3,4,2,0],[4,3,4,4],[1,2,0,1],[2,1,3,3]])我可以用b对a进行排序a[b,np.arange(a.shape[1])[None,:]]array([[0,2,0,2],[0,2,0,3],[3,4,4

python - 使用 Cython 构建未知长度的一维数组/列表/vector 的最有效方法?或者永远不应该这样做?

我有一个用Cython编写的时间关键型模型。我的Cython扩展的主要功能有一个循环,根据Cython分析器(它以黄色阴影显示Python调用的数量),目前唯一的“黄色”部分是我附加到Python列表的地方。(我必须输出一个Python对象,因为我在Python脚本中调用我的Cython函数)。这是我的函数的基本思想(其余的都是多余的,我已经测试了这个函数的每个部分,追加操作是瓶颈):fromlibc.mathcimportlogdefmain(someargs):cdef(somevars)cdeflistOutputList=[]#NB:allvarshavedeclaredtyp

python - 将一维数组转换为下三角矩阵

我想将一个一维数组转换为一个较低的零对角矩阵,同时保留所有数字。我知道numpy.tril函数,但它用零替换了一些元素。我需要扩展矩阵以包含所有原始数字。例如:[10,20,40,46,33,14,12,46,52,30,59,18,11,22,30,2,11,58,22,72,12]应该是010020400463314012465230059181122300211582272120 最佳答案 输入数组包含填充较低对角线位置所需的所有值,这是一种使用掩码的方法-deffill_lower_diag(a):n=int(np.sqrt

python - 一维数组形状 (length,) vs. (length,1) vs. (length)

当我使用numpy.shape()检查数组的形状时,我有时会得到(length,1)有时会得到(length,)。看起来区别在于列向量与行向量......但它似乎并没有改变数组本身的任何内容[除了一些函数在我传递形状为(length,1)].这两者有什么区别?为什么形状不只是(length)? 最佳答案 关键是说一个向量可以被看作是向量只有一列的矩阵一个3维数组,其中第2维和第3维的长度为1...您可以使用[:,np.newaxis]语法添加维度或使用np.squeeze删除维度:>>>xs=np.array([1,2,3,4,5]