草庐IT

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 - 写双(三)和作为内积?

由于我的np.dot由OpenBlas和Openmpi加速,我想知道是否有可能写出双和foriinrange(N):forjinrange(N):B[k,l]+=A[i,j,k,l]*X[i,j]作为内积。就在我正在使用的那一刻B=np.einsum("ijkl,ij->kl",A,X)但不幸的是它很慢并且只使用一个处理器。有什么想法吗?编辑:我用一个简单的例子对到目前为止给出的答案进行了基准测试,看起来它们都处于相同的数量级:A=np.random.random([200,200,100,100])X=np.random.random([200,200])defB1():return

python - 一种制作包含所有可能列的二维数组的优雅方法

在numpy中,我想制作一个2darrray(r,by2**r),其中的列都是可能的二进制列。例如,如果列的高度为5,则列为[0,0,0,0,0],[0,0,0,0,1],[0,0,0,1,0],[0,0,0,1,1],[0,0,1,0,0],...我的解决方案是np.array(list(itertools.product([0,1],repeat=c))).T这看起来很丑陋。有没有更优雅的方式? 最佳答案 您可以使用一些broadcasting在这里,就像这样-(((np.arange(2**r)[:,None]&2**np.a

python - 可见弃用警告 : boolean index did not match indexed array along dimension 1; dimension is 2 but corresponding boolean dimension is 1

Macports更新后,我认为更新了numpy,我收到警告:VisibleDeprecationWarning:booleanindexdidnotmatchindexedarrayalongdimension1;dimensionis2butcorrespondingbooleandimensionis1inliers=n.size(pixels[distances以前没有提出过。相关代码为:#Computedistanceofallnon-zeropointsfromthecircumferencedistances=guess_feature.points_distance(pi

python - 在 Numpy 中预处理 Tensorflow 张量

我在Tensorflow中设置了一个CNN,我在其中使用TFRecordReader读取我的数据。它运行良好,但我想做一些比tf.image函数提供的更多的预处理和数据扩充。我特别想做一些随机缩放。是否可以在Numpy中处理Tensorflow张量?或者我是否需要删除TFRecordReader而在Numpy中进行所有预处理并使用feed_dict提供数据?我怀疑feed_dict方法在图像训练时很慢,但我可能错了? 最佳答案 如果您可以创建自定义I/O管道,使用一个或多个线程从TensorFlow取回中间结果,应用任意Python

python - 在 numpy 数组中查找局部最大值

我正在寻找我拥有的一些高斯平滑数据中的峰值。我已经研究了一些可用的峰值检测方法,但它们需要一个输入范围来进行搜索,我希望它比那更自动化。这些方法也是为非平滑数据设计的。由于我的数据已经平滑,我需要一种更简单的方法来检索峰值。我的原始数据和平滑数据如下图所示。本质上,是否有一种pythonic方法从平滑数据数组中检索最大值,这样的数组就像a=[1,2,3,4,5,4,3,2,1,2,3,2,1,2,3,4,5,6,5,4,3,2,1]会返回:r=[5,3,6] 最佳答案 存在一个内置函数argrelextrema完成这个任务:impo

python - TensorFlow:生成随机常数

在ipython中,我导入了tensorflow作为tf和numpy作为np并创建了一个TensorFlowInteractiveSession。当我使用numpy输入运行或初始化一些正态分布时,一切运行良好:some_test=tf.constant(np.random.normal(loc=0.0,scale=1.0,size=(2,2)))session.run(some_test)返回:array([[-0.04152317,0.19786302],[-0.68232622,-0.23439092]])正如预期的那样。...但是当我使用Tensorflow正态分布函数时:som

python - 如何获取 numpy 数组的非对角线元素的索引?

如何获取numpy数组的非对角线元素的索引?a=np.array([[7412,33,2],[2,7304,83],[3,101,7237]])我试过如下:diag_indices=np.diag_indices_from(a)printdiag_indices(array([0,1,2],dtype=int64),array([0,1,2],dtype=int64))在那之后,不知道...预期结果应该是:result=[[False,True,True],[True,False,True],[True,True,False]] 最佳答案

python - 滚动窗口的数据帧表示

我想要滚动窗口的数据框表示。我不需要在滚动窗口上执行某些操作,而是想要一个数据框,其中窗口以另一个维度表示。这可以是pd.Panel或np.array或带有pd.MultiIndex的pd.DataFrame.设置importpandasaspdimportnumpyasnpnp.random.seed([3,1415])df=pd.DataFrame(np.random.rand(10,3).round(2),columns=['A','B','C'],index=list('abcdefghij'))printdfABCa0.440.410.46b0.470.460.02c0.85

python - 在 python 中合并一维和二维列表

我正在尝试设置数据以转换为numpy数组。我有三个list。两个是一维的,一个是二维的。a=[1,2,3]b=[4,5,6]c=[[7,8],[9,10],[11,12]]我想以此结束:[[1,4,7,8],[2,5,9,10],[3,6,11,12]]我试过使用zip(),但它没有深入研究二维数组。 最佳答案 假设您不介意在转换本身中使用NumPy,则以下内容应该有效。fromnumpyimportarraya=array([1,2,3])b=array([4,5,6])c=array([[7,8],[9,10],[11,12]]