草庐IT

python - 如何在 numpy 中创建 2D "rect"数组(1's, else 0' 的方 block )?

创建2Dnumpy“矩形”数组的“正确”方法是什么,例如:000000000000000000000000000000000000000000000000111110000000000000011111000000000000001111100000000000000000000000即在特定范围内具有给定值的数组,否则为零? 最佳答案 只需创建一个零数组并将您想要的区域设置为一个。例如importnumpyasnpdata=np.zeros((6,18))data[2:5,9:14]=1printdata这会产生:[[0.0.0.

python - 缩放 2D 坐标并保持它们的相对欧氏距离不变?

我有一组点,例如:pointA(3302.34,9392.32)、pointB(34322.32,11102.03)等我需要对它们进行缩放,以便每个x和y坐标都在(0.0-1.0)范围内。我尝试通过首先找到数据集中的最大x值(maximum_x_value)和该集中最大的y值(minimum_y_value)来做到这一点。然后我做了以下事情:pointA.x=(pointA.x-minimum_x_value)/(maximum_x_value-minimum_x_value)pointA.y=(pointA.y-minimum_y_value)/(maximum_y_value-mi

python - Numpy - 将 2D 数组 reshape 并分区为 3D

有没有办法将2D数组划分并reshape为3D数组。像下面的例子:基本上,我的左边有一个4x4矩阵,我想要一个如图所示的2x2x4矩阵,这样我就可以在第3个轴上应用numpy.mean。实际上,我拥有的矩阵非常庞大,所以这就是为什么循环遍历block不是一种选择。非常感谢任何帮助。 最佳答案 对于您的示例,您可以使用numpy.lib.stride_tricks.as_strided.In[1]:A=np.arange(16).reshape(4,4)In[2]:AOut[2]:array([[0,1,2,3],[4,5,6,7],

python - 如何将 1D numpy 数组分配给 2D numpy 数组?

考虑以下简单示例:X=numpy.zeros([10,4])#2Darrayx=numpy.arange(0,10)#1DarrayX[:,0]=x#WORKSX[:,0:1]=x#returnsERROR:#ValueError:couldnotbroadcastinputarrayfromshape(10)intoshape(10,1)X[:,0:1]=(x.reshape(-1,1))#WORKS有人可以解释为什么numpy的向量形状为(N,)而不是(N,1)吗?从一维数组转换为二维数组的最佳方法是什么?为什么我需要这个?因为我有一个代码将结果x插入二维数组X并且x的大小不时变化

python - Python 中的分位数/中位数/2D 装箱

你知道以下问题的快速/优雅的Python/Scipy/Numpy解决方案吗:您有一组x、y坐标和关联值w(所有一维数组)。现在将x和y分箱到二维网格(大小为BINSxBINS)并计算每个分箱的w值的分位数(如中位数),这最终会产生具有所需分位数的BINSxBINS二维数组。使用一些嵌套循环很容易做到这一点,但我确信有更优雅的解决方案。谢谢,标记 最佳答案 这是我想出来的,我希望它有用。它不一定比使用循环更干净或更好,但也许它会让您开始朝着更好的方向发展。importnumpyasnpbins_x,bins_y=1.,1.x=np.a

python - 在 matplotlib 中分散一个 2D numpy 数组

我有一个像这样的4x4数据数组data=np.array([[0,1,1,1],[1,0,0,1],[1,1,1,0],[0,0,0,1]])现在我想将这个数组散布在二维绘图上。如果data[i,j]等于1,则在点(x,y)=(i,j)处应该有一个彩色点。我试过在matplotlib中使用散点图,但不知何故无法让它工作。 最佳答案 你可以用importnumpyasnpimportmatplotlib.pyplotaspltdata=np.array([[0,1,1,1],[1,0,0,1],[1,1,1,0],[0,0,0,1]]

python - 使用 hist2d 在 matplotlib 中创建对数线性图

我只是想知道这是否可以做到。我尝试使用numpylogspace显式设置bins,我还尝试将xscale设置为“log”。这些选项都不起作用。有人试过这个吗?我只想要一个带有对数x轴和线性y轴的二维直方图。 最佳答案 它无法正常工作的原因是plt.hist2d使用了pcolorfast方法,该方法对于大图像更有效,但不支持对数轴。要获得在对数轴上正确工作的二维直方图,您需要使用np.histogram2d和ax.pcolor自行制作。然而,这只是额外的一行代码。首先,让我们在线性轴上使用指数间隔的bin:importnumpyasn

python - 规范化 2D Numpy 数组 : Zero Mean Unit Variance

我有一个二维Numpy数组,我想在其中将每一列标准化为零均值和单位方差。因为我主要使用C++,所以我正在做的方法是使用循环迭代列中的元素并执行必要的操作,然后对所有列重复此操作。我想知道这样做的Pythonic方式。让class_input_data成为我的二维数组。我可以得到列的意思是:column_mean=numpy.sum(class_input_data,axis=0)/class_input_data.shape[0]然后我通过以下方式从所有列中减去平均值:class_input_data=class_input_data-column_mean到目前为止,数据应该是零均值

python - Numpy:索引 3D 数组,最后一个轴的索引存储在 2D 数组中

我有一个包含值的shape(z,y,x)的ndarray。我试图用shape(y,x)的另一个ndarray索引这个数组,它包含我感兴趣的值的z-index。importnumpyasnpval_arr=np.arange(27).reshape(3,3,3)z_indices=np.array([[1,0,2],[0,0,1],[2,0,1]])因为我的数组相当大,所以我尝试使用np.take来避免不必要的数组副本,但就是无法用它来索引3维数组。如何使用z_indices索引val_arr以获得所需z轴位置的值?预期结果将是:result_arr=np.array([[9,1,20]

python - 循环遍历 2d 子图,就好像它是 1-D

我正在尝试使用子图绘制许多数据,我没有遇到麻烦,但我想知道是否有一种方便的方法可以做到这一点。下面是示例代码。importnumpyasnpimportmathimportmatplotlib.pyplotaspltquantities=["sam_mvir","mvir","rvir","rs","vrms","vmax","jx","jy","jz","spin","m200b","m200c","m500c","m2500c","xoff","voff","btoc","ctoa","ax","ay","az"]#len(quantities)=21,justtomakethes