【python – Numpy:将每行的最大值更改为1,将所有其他数字更改为0】教程文章相关的互联网学习教程文章

python-通过fromfunction错误创建NumPy【代码】

码:n=3 x=np.fromfunction(lambda i,j: (i==1)and(j==1), (n,n), dtype=int)导致“ ValueError:具有多个元素的数组的真值不明确.请使用a.any()或a.all()” 有什么问题?解决方法:该文档具有误导性.不会使用每个单元格的索引重复调用该函数;它被调用一次,索引数组一次代表所有单元格的索引.这个函数调用的返回值直接返回:>>> numpy.fromfunction(lambda *args: 1, (2, 2)) 1 >>> numpy.fromfunction(lambda *args: args, (2, 2)...

python-将值从一个numpy矩阵复制到另一个依赖于布尔掩码的值【代码】

作为一个简单的示例,我得到以下信息:import numpy as np a = np.matrix([[0.34, 0.44, 0.21, 0.51]]) a_max = np.matrix([[0.35, 0.40, 0.20, 0.50]])我想应用一个转换,其中a中大于a_max的任何内容都以a_max为上限.我试图通过以下方式做到这一点:a[a>a_max] = a_max[a>a_max]但这会引发错误:ValueError: array is not broadcastable to correct shape正确的方法是什么?忽略我正在做一个简单的最大值的事实(我猜颠簸的人可能具有...

python numpy返回意外警告【代码】

使用python 2.7,scipy 1.0.0-3 显然,我对应在numpy where函数如何运行或其运行中存在已知错误有误解.我希望有人能告诉我该问题,并解释一种解决方法,以消除我试图避免的烦人警告.当我使用熊猫系列where()时,我得到相同的行为. 为简单起见,我将使用一个numpy数组作为示例.假设我想在数组上应用np.log(),仅对于条件而言,值是有效输入,即myArray> 0.0.对于不应应用此功能的值,我想将输出标志设置为-999.9:myArray = np.array([1.0, 0....

python-从.m matlab文件中声明的矩阵创建numpy数组【代码】

一位同事留下了一些我想用Numpy分析的数据文件. 每个文件都是一个matlab文件,例如data.m,具有以下格式(但具有更多的行和列):values = [-24.92 -23.66 -22.55 ; -24.77 -23.56 -22.45 ; -24.54 -23.64 -22.56 ; ];这是matlab使用的典型的显式矩阵创建语法. 我的问题是:从这些文件创建numpy数组的最实用方法是什么? 我可以考虑“强力”或“快速而肮脏的”解决方案,但是如果有一个更直接的解决方案,我宁愿使用它,就像numpy甚至另一...

python-如何使用numpy nomkl在anaconda中创建环境?【代码】

我使用andaconda2 python2.7和wxpython,matplotlib,skimage,numpy编写了脚本. 使用pyinstaller生成可执行文件后.总大小将近700 mb.感觉太大了. 有人说,因为numpy使用的MKL非常大,大约400 mb,正如我在文件夹中看到的那样.所以我想知道如何使用numpy nomkl创建环境? 或者,如果有人有使用pyinstaller减少可执行文件大小的经验,请告诉我. 顺便说一句,我尝试了py2exe.它会创建一个更小的文件夹,但不知该exe无法正常工作. 谢谢!解决...

python-将numpy打开网格转换为坐标【代码】

我想将numpy ix_例程返回的开放网格转换为坐标列表 例如,用于:In[1]: m = np.ix_([0, 2, 4], [1, 3]) In[2]: m Out[2]: (array([[0],[2],[4]]), array([[1, 3]]))我想要的是:([0, 1], [0, 3], [2, 1], [2, 3], [4, 1], [4, 3])我敢肯定,我可以将其与一些迭代,解压缩和压缩一起进行破解,但是我敢肯定,必须有一种明智的方法来实现此目标……解决方法:方法1使用np.meshgrid,然后堆叠-r,c = np.meshgrid(*m) out = np.column_stack(...

python-在numpy中将3个一维数组连接在一起【代码】

我将MatLab留给numpy,总的来说还可以,但是我梦a以求的是找到一种不错的pythonic方法来完成MatLab的工作:A=[1.0;2.0;3.0;4.0] %Column vector B=[5.0;6.0;7.0;8.0] %Another one C=[A,B,B] %4 x 3 matrix在Python中,像这样设置A:A=np.array([1,2,3,4]) B=np.array([5,6,7,8])并连接如下:C=np.concatenate((A,B,B),axis=1)将它们一个堆叠在另一个之上,并且_C,hstack等也会失败.我猜想我需要一种很好的方法来将(4,)numpy数组变成(4...

python-numpy向量化函数的返回dtype【代码】

我对向量化函数返回的numpy数组的dtype有问题.我的函数返回一个数字,最终是一个分数.奇怪的是,分数的位置似乎会影响返回的dtype.如果函数返回小数,我希望类型始终是对象.import numpy as np from fractions import Fractionfoo = lambda x: Fraction(1, 3) if x < 0.5 else 1 foo_vectorized = np.vectorize(foo)foo_vectorized([1, 0.3]) # returns array([1, 0]) foo_vectorized([0.3, 1]) # returns array([Fraction(1, 3), 1],...

python-Cython是否提供任何合理简便有效的方法来迭代Numpy数组,就好像它们是平坦的一样?【代码】

假设我要实现Numpy的x[:] += 1在Cython.我可以写@cython.boundscheck(False) @cython.wraparoundcheck(False) def add1(np.ndarray[np.float32_t, ndim=1] x):cdef unsigned long ifor i in range(len(x)):x[i] += 1但是,这仅适用于ndim =1.我可以使用add1(x.reshape(-1))但这仅适用于连续的x. Cython是否提供任何合理简单有效的方法来迭代Numpy数组,就像它们是平坦的一样? (在Cython中重新实现此特定操作没有任何意义,因为上述Nu...

python在numpy数组中转换带格式数字的字符串最快的方法是什么【代码】

我有一个很大的ASCII文件(?100GB),其中包含大约1.000.000行的已知格式化数字,我尝试使用python处理它们.该文件太大,无法完全读入内存,因此我决定逐行处理该文件:fp = open(file_name) for count,line in enumerate(fp):data = np.array(line.split(),dtype=np.float)#do stuff fp.close()事实证明,我将程序的大部分运行时间都花在data =行中.有什么方法可以加快生产速度吗?而且,执行速度似乎比我从带格式读取的本机FORTRAN程序中...

python-使numpy矩阵更稀疏【代码】

假设我有一个numpy数组np.array([[3, 0, 5, 3, 0, 1],[0, 1, 2, 1, 5, 2],[4, 3, 5, 3, 1, 4],[2, 5, 2, 5, 3, 1],[0, 1, 2, 1, 5, 2], ])现在,我想用0随机替换一些元素.这样我就得到了这样的输出np.array([[3, 0, 0, 3, 0, 1],[0, 1, 2, 0, 5, 2],[0, 3, 0, 3, 1, 0],[2, 0, 2, 5, 0, 1],[0, 0, 2, 0, 5, 0], ])解决方法:我们可以使用np.random.choice(..., replace=False)随机选择多个唯一的非零扁平索引,然后简单地索引并重置输...

python-将具有numpy数组的字典写入.csv【代码】

我想将结果文件写入.csv.我准备了一个简单的测试示例.import numpy as np data = {} testdata = np.array([1,2,3,4,5])data['set1'] = {'a': testdata, 'b': testdata, 'c': testdata} data['set2'] = {'a2': testdata, 'b2': testdata, 'c2': testdata} data['set3'] = {'a3': testdata, 'b3': testdata, 'c3': testdata}得到这样的结果文件将是很棒的:有一种简单的建议方法吗?解决方法:您可以在单独的数据结构中收集标题和行,然...

python-cvtColor()转换为HSV色彩空间后的Numpy 8/16/32位图像数据类型【代码】

我正在使用cv2.cvtColor将图像从RGB转换为HSV表示形式.但是,当通过重新缩放并转换将np.float32 dtype的结果图像转换为np.uint16和np.uint8时,对于整数版本,使用cv2.imshow时的结果图像看起来有所不同.因此,我现在想知道我是否正确完成了转换,或者这实际上是由于转换期间丢失了一些信息导致的?我试图了解正在发生的事情,但不知道为什么.import cv2 import numpy as npim = cv2.imread(r'C:\Users\310293649\Desktop\photo.png') pr...

PIP安装不起作用(六个,numpy和python-dateutil要求)【代码】

我是Python的新手,想在Mac上为Python 3.5安装Pillow软件包.我使用pip install pillowcommand并收到此错误:Jaspers-MBP:~ jasperherrmann$pip install pillow Collecting pillowUsing cached Pillow-5.1.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl prompt-toolkit 1.0.15 has requirement six>=1.9.0, but you'll have six 1.4.1 which is incompatible. ...

python-连接两个不同维度的数组numpy【代码】

我正在尝试连接两个numpy数组以添加额外的列:array_1为(569,30)和array_2为(569,) 组合= np.concatenate((array_1,array_2),axis = 1) 我以为如果将axis = 2设置为有效,那么它将垂直连接.末尾应为569 x 31阵列. 我得到的错误是ValueError:所有输入数组的维数必须相同 有人可以帮忙吗? 谢谢!解决方法:您可以使用numpy.column_stack:np.column_stack((array_1, array_2))由@umutto注释,它会将1-d数组隐式转换为2-d,因此等效于np...