【python – Numpy表 – 高级多标准选择】教程文章相关的互联网学习教程文章

python-更新特定的numpy矩阵列【代码】

我有以下与我的目标索引相对应的索引列表[2 4 3 4].我正在使用以下代码目标行= np.zeros((features.shape [0],5))创建零矩阵.我想知道是否可以通过切片来一次更新所有特定索引并将这些值设置为1而无需for循环的方式,理想情况下矩阵看起来像([0,0,1,0,0],[0,0,0,0,1],[0,0,0,1,0],[0,0,0,0,1])解决方法:我相信你可以做这样的事情:targets = np.zeros((4, 5)) ind = [2, 4, 3, 4] targets[np.arange(0, 4), ind] = 1结果如下:array...

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-在numpy中获取块矩阵的平均值/和的最佳方法?【代码】

这个问题已经在这里有了答案: > How to evaluate the sum of values within array blocks 3个我想对块矩阵(或更一般而言,对d-dim nd.array)执行一些简单的计算.像这样:在图片中,大写字母表示3 x 3的块矩阵,小写字母表示数字(块矩阵的平均值或总和). 目前,我只知道如何使用for循环来做到这一点import numpy as nptest_matrix = np.arange(81).reshape(9,9) a = np.zero...

python-根据列表的Numpy折叠列【代码】

在NumPy中,我有一个adxn数组A和一个长度为n的列表L,描述了我希望A的每一列在矩阵B中结束的位置.想法是矩阵B的第i列是A的所有列的总和L中的对应值为i. 我可以使用for循环来做到这一点:A = np.arange(15).reshape(3,5) L = [0,1,2,1,1] n_cols = 3 B = np.zeros((len(A), n_cols)) # assume I know the desired number of columns, # which is also one more than the maximum value of L for i, a in enumerate(A.T):B[:, L[i]] ...

按部分比较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 / Numpy频率严重度分布仿真【代码】

我正在寻找一种模拟经典频率严重程度分布的方法,例如:X = sum(i = 1..N,Y_i),其中N例如是泊松分布,Y是对数正态. 简单的天真的numpy脚本将是:import numpy as np SIM_NUM = 3X = [] for _i in range(SIM_NUM):nr_claims = np.random.poisson(1)temp = []for _j in range(nr_claims):temp.append(np.random.lognormal(0, 1))X.append(sum(temp))现在,我尝试将其矢量化以提高性能.以下是更好的一点:N = np.random.poisson(1, SIM_N...

python-以numpy返回矩阵的邻居之和的最简单方法【代码】

我正在尝试制作一个需要矩阵的邻居(不包括自身)之和的程序ex ex:matrix([[0, 0, 0],[1, 0, 1],[0, 1, 0]]) 会返回:matrix([[1, 2, 1],[1, 3, 1],[2, 2, 2]])我在这里有一个有效的代码,但是它又大又杂乱,我是numpy的新手,所以我需要一些帮助来清理和优化它. (我觉得必须有更好的方法) 示例代码:import numpy as npdef NiSum(m):new = []for x in range(m.shape[0]-1):row = []for y in range(m.shape[1]-1):Ni = 0for a in [1,1...

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...

python-根据另一个数组对齐numpy数组【代码】

我有一个包含任意整数的numpy数组a,我还有另一个数组b,(它始终是a的子集,但是b中数字的顺序不同于a.我想按顺序排列b的元素它出现在a = np.array([4,2,6,5,8,7,10,12]); b = np.array([10,6,2,12]),我希望b对齐为[2,6,10,12].我怎样才能有效地在numpy中做到这一点?解决方法:方法#1:采用np.in1d的一种方法,假设-中没有重复项a[np.in1d(a,b)]元素处于干扰状态的更好的案例案例,以至于没有针对常见元素进行排序以呈现各种案例-In [10...

python-从具有3个通道的numpy数组中绘制彩色图像【代码】

在我的Jupyter笔记本中,我试图显示通过Keras迭代的图像.我正在使用的代码如下def plotImages(path, num):batchGenerator = file_utils.fileBatchGenerator(path+"train/", num)imgs,labels = next(batchGenerator)fig = plt.figure(figsize=(224, 224))plt.gray()for i in range(num):sub = fig.add_subplot(num, 1, i + 1)sub.imshow(imgs[i,0], interpolation='nearest')但这仅绘制单个通道,因此我的图像是灰度的.如何使用3个通道...

python-NumPy直方图-ValueError范围参数必须是有限的-输入数组可以【代码】

我正在努力理解此错误,因为我将给您一个有效的示例,而我对此感兴趣的示例却没有. 我必须分析一组数据,其中包含全年的每小时价格,称为sys_prices,在进行各种转换后,它是一个具有8785行(1列)的numpy.ndarray对象,每一行都是一个numpy.ndarray项仅包含一个元素,即numpy.float64数字. 下面的代码不起作用:stop_day = 95 start_day = stop_day - 10 # 10 days before stop_day = (stop_day-1)*24 start_day = (start_day-1)*24pcs=[] #...

python-Numpy Astype舍入到错误的值【代码】

因此,我试图将我的float numpy数组转换为整数.但是当我这样做时:array.astype(np.uint64)它改变了这个数组:[ 550. 514. 451. 494. 490. 500. ...]对此:[549 513 450 493 489 499 ... ]因此,我想知道你们中的任何人是否对此有一个想法?我必须将np.uint64作为我接下来使用的代码的输出. 先感谢您.解决方法:正如评论中所说,转换为整数不会舍入,它只会截断非整数部分.在控制台输出中显示为550的浮点数实际上可能是549.999999...

python-使用numpy视图将int32转换为int8【代码】

我试图将numpy int32数组视为int8类型.>>> a = np.array([1, 2, 3, 4], dtype='int32') >>> a array([1, 2, 3, 4], dtype=int32) >>> a.view('int8') array([1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0], dtype=int8)我希望将1转换为[0,0,0,1],但是为什么原来是[1、0、0、0]?这与号码在内存中的存储方式有关吗? 谢谢.解决方法:Is this related to how the number is stored in memory?是的,有big endian and low endian.要...

python-如何使用花式索引创建Numpy数组【代码】

如何使用numpy的精美索引来创建此索引,我想要最快的性能:array([[ 1, 2, 3, 4, 16, 31],[ 2, 3, 4, 5, 17, 32],[ 3, 4, 5, 6, 18, 33],[ 4, 5, 6, 7, 19, 34],[ 5, 6, 7, 8, 20, 35],[ 6, 7, 8, 9, 21, 36],[ 7, 8, 9, 10, 22, 37],[ 8, 9, 10, 11, 23, 38],[ 9, 10, 11, 12, 24, 39],[10, 11, 12, 13, 25, 40]]从此开始:a = np.arange(0,10)aa = np.arange(0,50)y = 1AA = [(aa[np.array([x+y, 1+x+...

python numpy常用的数学和统计函数【代码】【图】

numpy模块的核心就是基于数组的运算,相比于列表和其他数据结构,数组的运算效率是最高的。在统计分析和挖掘过程中,经常会使用到numpy模块的函数,以下是常用的数学函数和统计函数: 常数p就是圆周率 3.1415926... 常数e :2.71828... np.fabs(arr) 例如:np.fabs(-3) 输出:3.0 np.ceil(arr) 例如:np.ceil(3.2) 输出:4.0 并非四舍五入操作 np.floor(arr) 类似ceil 向下取整 np.round(arr) 四舍五入 例如:np.ro...