【29.连续子数组的最大和(python)】教程文章相关的互联网学习教程文章

python-根据条件分配numpy数组【代码】

编写此numpy python代码的更好方法是什么?age[age < 20.0] = 0.0 age[age > 0.0] = 1.0 mature = age在此,对于年龄>> 10的所有值,“成熟”包含1.0. 20.0,否则为0.0解决方法: mature = age = (age > 20.0).astype(float)年龄> 20.0是一个布尔数组. astype(float)将数组转换为float dtype,该类型将True更改为1.0,将False更改为0.0.请注意,这还会将NaN转换为0. 要保留NaN,就像原始代码一样,可以使用np.clip:mature = age = np.cli...

python-在numpy数组中加权平面的最佳方法是什么?【代码】

我有以下代码,其中w是兼容维的一维numpy数组,而M是4D数组,i = 0 for weight in w:M[:, :, i, :] *= weighti += 1有没有更好的方法可以达到相同的效果?解决方法:您将使用w中的元素沿轴= 2缩放M,这是一维数组.因此,您需要将w扩展到np.newaxis/None的2D数组,这将使w的扩展版本与M之间的轴对齐.然后,在这两个数组之间执行逐元素乘法以引入broadcasting作为矢量化解决方案,例如-M *= w[:,None]如果M的axis = 2的长度大于w中的元素数,则...

python 多维数组 字典【代码】

#多维数组list = [[87,57,98],[34,87,90]]print(list[1][0])l = [[87,57,98],[34,87,[90,99,67]]]print(l[1][2][1])#字典 key-valueflightplan = {flight:2019-10-26,dep:重庆,arr:杭州,flightno:CA1889}print(flightplan[flightno])print(flightplan[flight])print(flightplan.get(dep))print(flightplan.get(arr))flightplan[deptime] = 0900flightplan.setdefault(arrtime,1000)print(flightplan)#增加flightplan[flightno] = C...

Python转换数组【代码】

我有这种数据框:Variable Date Value 0 Variable1 Date1 Valeur 1 1 Variable1 Date2 Valeur 2 2 Variable1 Date3 Valeur 3 3 Variable2 Date4 Valeur 4 4 Variable2 Date5 Valeur 5我想这样改变它:Date Variable1 Variable2 0 Date1 Valeur 1 None 1 Date2 Valeur 2 None 2 Date3 Valeur 3 None 3 Date4 None Valeur 4 4 Date5 None Valeur 5如何在Python中使用panda或...

python-点积用于任意形状的NumPy数组【代码】

给定两个任意形状的numpy.ndarray对象A和B,我想计算一个numpy.ndarray C,其属性为C [i] == np.dot(A [i],B [i])为了我我怎样才能做到这一点? 示例1:A.shape ==(2,3,4)和B.shape ==(2,4,5),那么我们应该有C.shape ==(2,3,5). 示例2:A.shape ==(2,3,4)和B.shape ==(2,4),那么我们应该有C.shape ==(2,3).解决方法:这是一个通用的解决方案,它使用一些重塑和np.einsum来覆盖各种情况/任意形状.einsum在这里有帮助,因为我们需要沿输入...

python-将numpy数组另存为二进制以从FORTRAN中读取【代码】

我有一系列的numpy数组,我需要将这些numpy数组作为需要从FORTRAN中读取的原始二进制float32(不包含任何标头信息)保存在循环中.import numpy as np f=open('test.bin','wb+') for i in range(0,10):np_data=np.random.rand(10,5)fortran_data=np.asfortranarray(np_data,'float32')fortran_data.tofile(f)f.close()这是正确的方法,以便我可以正确地从FORTRAN中读取在python中创建的此二进制文件.您的建议将受到高度赞赏解决方法:您编...

python-从列表和其他单个值创建numpy数组的最佳方法【代码】

我想从列表条目和一些其他单独的值创建一个数组. 我正在使用以下似乎笨拙的方法:x=[1,2,3] y=some_variable1 z=some_variable2 x.append(y) x.append(z) arr = np.array(x)#print arr --> [1 2 3 some_variable1 some_variable2]有更好的解决方案吗?解决方法:您可以使用列表添加将所有放置在列表中的变量添加到较大的列表中,如下所示:arr = np.array(x + [y, z])

python-在整数数组/整数列表中查找重复项【代码】

给定整数数组/列表,输出重复项. 另外,我真正想要的是:哪些解决方案具有最佳的时间性能?最佳空间表现?是否可以同时拥有最佳时间和最佳空间性能?只是好奇.谢谢! 例如:给定列表[4,1,7,9,4,5,2,7,6,5,3,6,7],答案将是[4,7,6,5](顺序输出无所谓). 我用python编写了解决方案. 这是我使用哈希和二进制搜索编写的一种解决方案.def binarySearch(array, number):start = 0end = len(array)mid = (end + start) // 2while (end > start...

python-如何按降序对2d数组的一半进行排序(numpy)【代码】

我试图创建一个数组(10000,50)的大小(我提到大小是因为效率很重要),然后: >按升序对前5000行进行排序>按降序对接下来的5000行进行排序. 这是我的代码:samples = 10 # I'm going to increase it 10000 sampleLength = 4 # I'm going to increase it 50 halfSamples = int(samples/2)xx = numpy.multiply(10, numpy.random.random((samples, sampleLength))) xx[0:halfSamples,0:sampleLength]=numpy.sort(xx[0:halfSamples,0:sam...

使用Python翻转数组中的位【代码】

您将获得一个包含N个元素的整数数组:d [0],d [1],… d [N-1].您可以对数组执行AT MOST动作:选择任意两个整数[L,R],并翻转第L和R位之间的所有元素. L和R代表位的最左和最右索引,这些位标记了您决定翻转的段的边界. 在最终的位串中可以获取的最大1位位数(用S表示)是多少? “翻转”表示将0变换为1,将1变换为0(0-> 1,1-> 0). 输入格式:整数N,下一行包含N位,以空格分隔:d [0] d [1] … d [N-1] 输出:S 限制条件:1 <= N <= 100000...

按部分比较python中的两个numpy数组【代码】

我想按部分对两个数组进行比较.到目前为止,我必须获得所有数组的结果.import numpy as np array1 = np.array(list(np.zeros(20))+(list(np.ones(20)))+(list(2*np.ones(20)))) array2 = np.array(list(np.ones(20))+(list(np.ones(20)))+(list(3*np.ones(20)))) result = np.sum(array1 == array2) print 'all result :' + str(result)如何才能得到部分结果,例如数组中的第一数据20然后第二数据20和第三数据20?结果应该是: 全部结...

python-比较数组中的np.nan时,“ less”中的值无效【代码】

观察np.nan < 0Falsenp.array([np.nan]) < 0array([False], dtype=bool)然而np.array([-1, np.nan]) < 006003array([ True, False], dtype=bool)该错误是什么意思?解决方法:这仅是警告,并非例外. Numpy会尝试提供帮助,并报告您阵列中有一个Nan.忽略它是安全的.如果警告本身困扰您(或您的用户),则可以取消警告:with np.errstate(invalid='ignore'):np.less([np.nan, 0], 1)但是,实际上不建议这样做,因为它可能掩盖不那么明显的问题...

在Python中从2D数组中选择正值【代码】

我想从相同的数组中选择x,y值,例如:xy = [[0.0, 3], [0.1, 1], [0.2, -1]]其中y> 0,因此输出应为array[ [0.0, 3], [0.1, 1]]我尝试了类似的东西[x for x in xy if y>0],但返回以下错误:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all().解决方法:对对象进行切片以仅比较y值,并使用生成的布尔掩码:In [12]: xy[xy[:,1]>0]Out[12]: array([[ 0. , 3. ],[ 0.1, 1. ]])...

python-在轴1上具有布尔数组的Pandas loc()方法【代码】

我正在尝试使用boolean数组作为参数的Pandas loc()方法. 我创建了一个小数据框来玩:col1 col2 col3 col40 a 1 2 31 b NaN NaN 62 c NaN 8 93 d NaN 11 124 e 13 14 155 f 17 18 196 g 21 2 2 23还有一个在轴1上使用的布尔数组,以子集许多列:a1 = pd.Series([True, False, True, False])...

python-用矩阵作为元素的数组的Numpy intersect1d【代码】

我有两个数组,一个数组的形状为(200000,28,28),另一个数组的形状为(10000,28,28),因此实际上是两个以矩阵为元素的数组.现在,我想计算并获得在两个数组中都重叠的所有元素(格式为(N,28,28)).使用普通的for循环,这是减慢速度的方法,因此我尝试使用numpys intersect1d方法进行尝试,但我不知道如何将其应用于此类数组.解决方法:使用this question about unique rows起的方法def intersect_along_first_axis(a, b):# check that casting...