我用图像中的数据制作了一个numpy数组。我想把numpy数组转换成一维数组
import numpy as np
import matplotlib.image as img
if __name__ == '__main__':
my_image = img.imread("zebra.jpg")[:,:,0]
width, height = my_image.shape
my_image = np.array(my_image)
img_buffer = my_image
我是一个新手,在Python2.7.2中用Numpy尝试了一些东西,但没有按预期工作,所以我想检查一下是否有一些基本的错误
我正在计算一个三角形的值(trinormals),然后使用三角形索引数组(trivertexidx)更新三角形的每个点的值(顶点法线)。作为一个循环,我正在计算:
for itri in range(ntriangles) :
vertnormals[(trivertidx[itri,0]),:] += trinormals[itri,:]
据我所知,numpy.sparse.csr\u sparse.dot(other)会从右侧将other乘以我的稀疏矩阵:
A = numpy.sparse.csr_sparse(something)
B = numpy.matrix(something)
C = A.dot(B) # C = A*B
如何转换这两个矩阵以获得B*A,同时又不失去将矩阵保存为稀疏矩阵的好处(即.todense()等)?矩阵乘法属性的一点更新:
D = B * A
D.T =
我试图将随机林分类器应用于一组具有混合数据类型的数据;值得注意的是,它同时具有浮点和字符串。我意识到我可以通过使用类似热编码的方法来转换字符串,但我的理解是随机林的好处之一是能够混合数据类型。因此,考虑到这一点,我使用loadtxt将数据加载到一个结构化数组中:
dtypes = np.dtype([
('height', np.float32), ...
])
X = np.loadtxt("dataset.csv", delimiter=",", dtype=dtypes, usec
我正在尝试安装适用于Python2.7、MacOSX10.8的numpy。
首先,我安装了以下命令:
sudo pip install --upgrade numpy
由于错误:RuntimeError:breaked toolchain:无法链接简单的C程序,我需要设置ARCHFLAGS:
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install --upgrade nump
我正在学习cython来加速numpy。我写了一段代码,看看如何优化numpy数组计算。
python代码是:
from numpy import *
def set_onsite(n):
a=linspace(0,n,n+1)
onsite=zeros([n+1,n+1],float)
for i in range(0,n+1):
onsite[i,i]=a[i]*a[i]
return onsite
然后,我尝试将此代码循环化:
impor
假设我有x-y数据样本,按x值排序。我将以Pandas为例,但我当然非常乐意使用仅限Numpy/Scipy的解决方案
In [24]: pd.set_option('display.max_rows', 10)
In [25]: df = pd.DataFrame(np.random.randn(100, 2), columns=['x', 'y'])
In [26]: df = df.sort('x')
In [27]: df
Out[27]:
x y
1
当我安装Anaconda3-2.4.1-Windows-x86_64时,结果是True,我发现numpy运行非常慢
当我安装Anaconda3-2.3.0-Windows-x86_64时,结果是False,numpy运行良好
在Anaconda3-2.4.1-Windows-x86_64中,numpy.\uu配置\uuu.show()输出:
import numpy
id(numpy.dot) == id(numpy.core.multiarray.dot)
在Anaconda3-2.3.0
我很惊讶地看到numpy.类似的列在UFUNC列表中。这只是一个疏忽,还是有特定的用例?这是文档中的疏忽one_like不是一个ufunc。它与类似于的零和类似函数一起在中实现。它使用参数的形状和数据类型,但不执行elementwise操作
标签: Numpy
scipylinear-algebra
我有一个大小为((s1,…sm))的numpy数组,其中包含整数条目,还有一个字典D,其中整数作为键,大小为((t))的numpy数组作为值。我希望对数组A的每个条目计算字典,以获得大小为((s1,…sm,t))的新数组B
比如说
D={1:[0,1],2:[1,0]}
A=np.array([1,2,1])
输出应为
array([[0,1],[1,0],[0,1]])
动机:我有一个以单位向量索引为条目的数组,我需要将其转换为以向量为条目的数组。这里有一种方法,使用这些行索引将其索引到字
标签: Numpy
array-broadcasting
对不起,没有研究,我赶时间。
当我这么做的时候
data = data-data[:,0]
我收到一个广播错误。我该怎么做才能让numpy理解我呢?将切片扩展到2D,然后进行减法-
data -= data[:,0,None]
或者,我们也可以重塑以获得2D-
data -= data[:,0].reshape(-1,1)
检查形状和DIM数量的样本运行-
In [103]: data = np.random.rand(4,5)
In [104]: data[:,0].shape
我正在尝试使用tf.py_func在python中编写一些自定义TensorFlow函数,其中我希望在python中计算结果和梯度。我正在使用渐变覆盖贴图技巧,例如从和
然而,当正向函数得到一个numpy数组作为输入时,梯度函数得到张量。这是一个问题,取决于调用函数的时间,因为可能没有默认会话,和/或可能没有包含所有必需值的提要,例如,在tf.train优化器中
如何在向前和向后函数都获取并返回numpy数组的情况下执行py_func
示例代码:
import tensorflow as tf
我正在尝试使用TensorFlow用CIFAR-100构建一个线性分类器。我从Martin Gorner的MNIST教程中获得了代码,并做了一些更改。当我运行这段代码时,tensorflow并没有进行训练(代码正在运行,但精度仍然为1.0,而损失(交叉熵仍然为4605.17),我不知道怎么回事,我实际上是TF的新手,非常感谢您的帮助
导入pickle
将numpy作为np导入
导入操作系统
导入tensorflow作为tf
从tensorflow.python.framework导入tenso
标签: Numpy
productcartesian
所以首先,我想我要实现的是某种笛卡尔积,但从元素上来说,只是跨越列
我想做的是,如果你有多个大小为[(N,D1),(N,D2),(N,D3)…(N,Dn)]
因此,结果是横轴=1的组合乘积,这样最终结果将是形状(N,D),其中D=D1*D2*D3*…Dn
e、 g
可扩展到笛卡尔乘积([A,B,C,D…],轴=1)
e、 g
我有一个有效的解决方案,它基本上创建一个空(N,D)矩阵,然后在所提供的列表中为每个矩阵的嵌套for循环中的每个列广播向量列式乘积。很明显,一旦阵列变大,情况就很糟糕了
n
我想使用一个批量来训练Keras LSTM。
在这种情况下,到目前为止,我不需要零填充。零填充的必要性来自于均衡批次的大小,对吗
事实证明这并不像我想的那么容易
我的网络如下所示:
model = Sequential()
model.add(Embedding(output_dim=embeddings.shape[1],
input_dim=embeddings.shape[0],
weights=[embeddings],
我能够根据数据点的纬度和经度绘制数据点图,如下所示:
橙色由以下点组成:
使用代码:
m = Basemap(projection='merc',llcrnrlat=-0.5,urcrnrlat=0.5,\
llcrnrlon=9,urcrnrlon=10,lat_ts=0.25,resolution='i')
m.drawcoastlines()
m.drawcountries()
# draw parallels and meridians.
parallels
现在,我有一个numpy数组,其中包含对电子邮件是“垃圾邮件”还是“火腿”的预测。所以基本上是垃圾邮件预测模型的结果。我想将其与包含所用测试集类的数组进行比较。当我对它们使用多项式nb.score()方法时,我得到一个错误,因为它是用来比较浮点值而不是字符串的
那么,如何根据列表条目是“spam”还是“ham”将这两个数组更改为浮点值呢?更好的是,有没有另一种更好的方法来定量测量模型的质量?假设您已经获得了y\u true和y\u predicted,然后使用以下方法:
import numpy
标签: Numpy
blasintel-mklatlasnon-deterministic
IEEE浮点运算是确定性的,但整体浮点计算可能是非确定性的,请参见:
。。。就浮点计算的执行顺序而言,并行计算是不确定的,这可能导致跨运行的非位精确结果
问题分两部分:
除此之外,整个浮点计算怎么可能是非确定性的,产生不完全相等的结果
考虑一个调用NumPy、CVXOPT和SciPy子例程(如SciPy.optimize.fsolve())的单线程Python程序,这些子例程依次调用本机库(如MINPACK和GLPK)和优化线性代数子例程(如BLAS、ATLAS和MKL)。“”
这些本机库是否
我有三个形状数组(10291146,8,5)。它们是H4,rowoffset和coloffset。H4是float32,而另外两个是int。假设每个元素数组有4个字节,H4的开销为188.7 MB
我的机器总共有32 GB内存,目前有18个可用内存。我使用platform.architecture()
似乎我还没有达到内存限制,但在运行以下操作时,我出现了内存错误:
shifted=np.take(H4,rowOffsets,0,mode='clip').
我进一步测试了这一点,在Take调用
标签: Numpy
interpolationresolutionsensorspython-3.7
我正在开发一个pythong脚本,在这里我从一个连接了低分辨率编码器的马达接收角度测量。我从马达上得到的数据分辨率很低,在测量之间大约有5度的间隔。这是传感器以恒定速度旋转时的输出示例,单位为度:
传感器输出=[5,5,5,10,10,10,10,10,15,20,20,20,25,25,30,30,30,30,35….]
正如你所看到的,这些测量中的一些是重复的。
根据这些测量值,我想进行插值,以获得1D数据点之间的测量值。例如,如果我在时间k接收到角度测量θ=5,在下一个例子t=k+1也接收
我使用numpy.ndarray表示类似Kinect的传感器提供的3D手势序列
表示手势的相关尺寸为:
(x, y, z, j, t)
其中:
x是x位置通道
y是y位置通道
z是z位置通道
j是(类似kinect的)身体骨骼中关节的索引
t是时间指数
重要注意事项:但是,目前我的阵列不是存储为5d阵列,而是存储为3d阵列:
gesture.shape = (time, joint, 3)
(其中,对于x、y和z,3=1+1+1,其中时间=100,关节=25)
我的目标是生成一个RGB图
有关下列事项:
d = np.array([[0,1,4,3,2],[10,18,4,7,5]])
print(d.shape)
输出为:
(2,5)
这是意料之中的
但是,对于这一点(各行中元素数量的差异):
输出为:
(2,)
如何解释这种行为?简短回答:它将其解析为两个对象的数组:两个列表
Numpy用于处理“矩形”数据。如果您将非矩形数据传递给它,np.array(..)函数会将其视为对象列表
实际上,请在此处查看数组的dtype:
>>> d
array([list
我有两个pd数据帧
df1
Equipment_Class 0 1 2 3
PC1 8.72 7.32 0.17 0.00
PC2 19.18 10.11 8.72 0.35
df2
Year Equipment_Class 0
我在这里遵循代码:
但是,在度量计算过程中,我得到以下错误:
File "main.py", line 50, in <module>
learn.fit_one_cycle(4,max_lr = 2e-3)
...
File "main.py", line 39, in quadratic_kappa
return torch.tensor(cohen_kappa_score(torch.argmax(y_hat,1), y, weights='quadratic'),
在使用tensorflow实现一个类似于带潜在向量的FM的模型时,我遇到了意想不到的乘法广播效率问题:相同的阵列在差分转置后乘法的成本非常不同。
然而,使用numpy,效率差异并不是那么显著
那么,tensorflow 1.12和numpy之间是否存在一些广播规则差异?
PS:tf1.14&tf2,工作正常,有人知道哪个重要更新修复了此问题吗
简单代码:
[b, d, n, 1] * [n, k] # ok
[b, n, d, 1] * [n, 1, k] # slow
[b, n,
在spark cluster上运行numpy阵列时,我不知道它是在哪里创建的:
a = np.zeros((100, 100), dtype="byte")
我觉得应该在驱动程序上创建它。但如果是这样的话,我们如何利用spark的分布式计算能力,换句话说,如果spark不能分布式,为什么我们需要在其上使用numpy?答案是否定的。如果数据超出内存限制,numpy会将数据拉入驱动程序,并可能导致OOM
标签: Numpy
polynomial-approximations
切比雪夫节点在确定多项式时防止了龙格现象。对于区间[0,1]第二类切比雪夫节点可以通过(1+math.cos(math.pi*(1+(i-1)/(n-1)))/2和i=1..n来确定
在多维单纯形上是否存在“最优”分布点的多维版本
我一直在研究numpy的切比雪夫模,但没有得到与节点的连接。是MathOverflow上的一个相关问题,in是构造秩1切比雪夫格的伪算法。
我正在尝试使用自定义丢失功能运行我的模块
这是我的损失函数:
def softargmax(x, beta=1e10):
x_range = tf.range(x.shape.as_list()[-1], dtype=x.dtype)
return tf.cast(tf.reduce_sum(tf.nn.softmax(x*beta) * x_range, axis=-1), tf.int32)
def convert2(lang, tensor):
result =
标签: Numpy
numpy-ndarraynumpy-slicing
看看这个问题的答案:
我仍然无法理解使用一个切片和两个1d数组组合进行索引的结果,如下所示:
>>> m = np.arange(36).reshape(3,3,4)
>>> m
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[2
我试图找到以下函数在1>>平面图(x,f(x))
[]
>>>plt.show()
我看到了这个图,并对15岁时的最大值保持警惕,但这就是教授所写的。@Jamie我收到了以下错误:回溯(最近一次调用):5文件“/hw7problem5.py”,第14行,在6 scipy.optimize.fmin(lambda r:1/f(r),10)7 AttributeError:'module'对象没有属性'optimize'@dustin您需要导入优化模块:导入scipy.optimize@Jaime
是否有办法在页面边界上分配numpy数组的数据部分(即数据)
至于我为什么关心,如果我在Intel设备上使用PyOpenCL,并且我想使用CL\u MEM\u USE\u HOST\u PTR创建一个缓冲区,那么数据1)页面对齐,2)大小是缓存线的倍数
在C语言中有多种分配页面对齐内存的方法,例如:我不知道Numpy此时有任何显式调用来对齐内存。除了@Saulio Castro建议的Cython之外,我能想到的唯一方法是通过明智的内存分配,使用numpy分配或PyOpenCL API进行“填充”
我正在尝试使用scikit学习对一些数据进行分类。数据存储在.csv文件中。我的问题是,实例由唯一的17位整数标识。当我加载数据时,python/numpy/scikit-learn会自动转换为科学记数法,并将数字的尾端四舍五入。如何至少对包含ID号的变量禁用此功能
另外-我看到np.getfromtxt()有一个“dtype”选项,允许用户指定每列的数据类型。有没有办法只在一列上使用此选项?我有>250列,单独指定其余的列(都是浮点数)是不实际的
以下是我加载数据的代码:
my_data =
我有一个正值矩阵,以及一个阈值列表。阈值列表已排序。例如:
X = np.matrix([[1., 2., 3.,], [0., 2., 1.], [4., 1., 2.]])
y = [0.5, 1., 3., 5.]
我想写一个函数来设置X中所有小于y[1]到y[1]的条目,所有等于或大于y[1]且小于y[2]到y[2]的条目,等等
当然,这可以通过简单地迭代矩阵条目和阈值来实现,但我想找到一种更有效的方法。我已经看过了剪辑,但它并没有达到我所需要的效果。您可以使用它来获取索引:
>
标签: Numpy
scipyinterpolation
我正在使用NumPy和SciPy将一个MATLAB程序转换成Python程序,我对它还是新手。在部分程序中,我有以下MATLAB代码:
tImg(:,:,1) = interp2(x,y,Img(:,:,1),Tx,Ty,'cubic');
interp2方法中的所有参数均为298x142双精度
因此,我尝试将其转换为以下Python代码:
tImg[:, :, 0] = (scipy.interpolate.interp2d(x, y, img[:, :, 0], kind='cubic')
标签: Numpy
scipysignal-processingfftspectrum
我有一个实时的信号,由:
我只是想计算它的功率谱。为此,我只需写下:
import numpy as np
from scipy.fftpack import fft, arange, rfftfreq, rfft
from pylab import *
lags1, c1, line1, b1 = acorr(((Y_DATA)), usevlines=False, normed=True, maxlags=3998, lw=2)
Power_spectrum = (fft(np.rea
我想用tensordot来计算两个张量的特定尺寸的点积。比如:
A是张量,其形状为(3,4,5)
B是张量,其形状为(3,5)
我想用a的第三个暗度和B的第二个暗度做一个点,得到一个暗度为(3,4)的输出
如下图所示:
for i in range(3):
C[i] = dot(A[i], B[i])
如何使用tensordot?在这种特定情况下,einsum可能比tensordot更容易理解。例如:
c = np.einsum('ijk,ik->ij', a, b)
我将把解
我似乎陷入了一个相对简单的问题,但在搜索了最后一个小时并进行了大量实验后,我无法解决它
我有两个numpy数组x和y,我正在使用seaborn的jointplot绘制它们:
sns.jointplot(x, y)
现在我想分别将xaxis和yaxis标记为“X轴标签”和“Y轴标签”。如果我使用plt.xlabel,标签将转到边际分布。如何使它们显示在关节轴上 sns.jointplot返回一个对象,该对象允许您访问matplotlib轴,然后您可以从那里进行操作
import seaborn
我有一个三维张量x(例如4x4x100)。我希望通过在最后一个维度上显式地选择元素来获得其中的一个子集。如果我在最后一个维度上选择相同的元素(例如,x[:,:,30:50]),这会很容易,但我想使用2D tensor索引来针对该维度上的不同元素,该索引指定了第三维度上的idx。在numpy中有没有一种简单的方法可以做到这一点
更简单的2D示例:
x = [[1,2,3,4,5,6],[10,20,30,40,50,60]]
indices = [1,3]
假设我想从索引指定的点开始,在x的第三
请帮助找到使用numpy memmap从.npy文件还原numpy数组的方法
MNIST数据
保存到.npy
从npy恢复到memmap
负重
如果使用numpy load,则可以恢复数据。因此,它是关于memmap的
X_mm = np.load('X_train.npy')
X_mm[9179][599]
-----> 200.0
np.load有自己的memmap版本。不要将np.memmap用于np.save文件。np.load和np.memmap都建议使用np.lib.f
我试图使用numpy的linalg.eig()函数来获取特征向量和特征值
import numpy as np
M = np.array([[168.04570515, 1.38100609, -48.60662242],
[1.38100609, 16.49647382, 9.18370965],
[-48.60662242, 9.18370965, 38.37842496]])
eigenvalue, eigenvector = np
我正在研究CNN模型,我很想知道如何将datagen.flow_从_directory()给出的输出转换成一个不规则的数组。_directory()中的datagen.flow_的格式是directoryiterator
除了ImageDataGenerator之外,还有其他从目录中获取数据的方法
img_width = 150
img_height = 150
datagen = ImageDataGenerator(rescale=1/255.0, validation_split=0.2
我有一个(时间昂贵的)操作,多个指标有共同点。在度量之间共享操作结果的最佳方法是什么,以避免每次重新计算的开销?您应该创建一个特殊的类来覆盖tf.keras.callback.callback()(从而实现您自己的回调类),并通过覆盖\u end()上的方法来计算所需的度量
然后,您可以计算一些度量,比如在验证集上,因此您可以手动确保,如果您计算例如TP+FP,您确实可以使用此总和来计算精度(TP/(TP+FP)),而不是重新计算精度
手动执行此操作可确保不会进行额外/多余的计算。感谢您的快速回
我有一个2D矩阵a和一个向量B。我想找到a中元素的所有行索引,它们也包含在B中
A = np.array([[1,9,5], [8,4,9], [4,9,3], [6,7,5]], dtype=int)
B = np.array([2, 4, 8, 10, 12, 18], dtype=int)
我目前的解决方案是一次只将A与B的一个元素进行比较,但速度非常慢:
res = np.array([], dtype=int)
for i in range(B.shape[0]):
cres
标签: Numpy
multidimensional-arrayprobabilitypython-xarraypercentile
我目前正在使用xarray制作概率图。我想使用统计评估,比如“计数”练习。也就是说,对于NEU中的所有数据点,计算两个变量共同超过其阈值的次数。这意味着降水数据的第1个百分位和温度数据的第99个百分位。那么连接发生的概率(P)就是连接超出的数量除以数据集中的数据点数量
<xarray.Dataset>
Dimensions: (latitude: 88, longitude: 200, time: 6348)
Coordinates:
* latitude (latit
我试图在Pyspark中使用UDF提取概率列的第一个元素(向量数据类型)。我能够用概率列中提取的值获得新的数据帧。我还检查了概率列的数据类型,它从vector变为float。但我无法将数据帧写入配置单元表。我发现numpy模块未找到错误。部署模式为客户端。除了在所有工作节点中安装numpy,还有其他解决方法吗
代码-
spark = (SparkSession
.builder
.appName("Model_Scoring")
.master('yarn')
.enable
我有多个从不同角度显示汽车的深度图。我需要计算它们在损失函数中的匹配程度,所以我必须将它们重新投影到不同的视图中。深度贴图位于相对于车辆长度的立方体中。图像的形状为(256256)。我已经编写了将它们转换为带有后端函数(256*256,3)的点云的代码。我可以用numpy将此点云重新投影到侧视图,如下所示:
reProj = np.zeros((256, 256), np.float32)
reProj[pointCloud[:, 1], pointCloud[:, 2]] = pointClo
在我的卷积神经网络代码中,有一个步骤涉及到沿3维的张量收缩;在NumPy中看起来是这样的(但是我计划使用原始BLAS):
这对我来说是个象征
通常,CNN例程通过将高维张量转换为二维“图像”来处理大张量收缩,然后使用规则矩阵乘法-利用GEMM和其他优化的矩阵乘法例程的速度来抵消初始降维的成本和冗余
我的方法涉及跳过降维阶段,唯一需要的真正计算工作是X和F的张量乘法。是否存在收缩张量内部指数的类似快速例程?我怎样才能把它缩减到在BLAS等中已经确立的东西。?仅收缩内部索引的事实向我表明,应该有一
标签: Numpy
array-broadcasting
我有一个数组,例如arr=[1,2,3,4],和m=3。我想用m行创建一个矩阵,重复该数组。示例的输出将是
[[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4]]
我该怎么做?我试过了
np.vstack((arr, arr, arr))
然而,据我所知,只有当我有效地使用了硬核m时,这才有效。您可以使用:
import numpy as np
arr, m = [1,2,3,4], 3
np.vstack([arr]*m)
输出:
array([[1,
我想知道数组a在哪里等于数组b中的任何值
比如说,
a = np.random.randint(0,16, size=(3,4))
b = np.array([2,3,9])
# like this, but for any size b:
locations = np.nonzero((a==b[0]) | (a==b[1]) | (a==b[3]))
原因是我可以将a中的值从(b中的任何一个)更改为另一个值:
a[locations] = 99
或者,取消相等性检查不是一个很好的解决方
使用numpy,我的目标是从二次矩阵中选择一个二次子矩阵,然后查看不在第一个子矩阵中的元素集合
对于第一个子矩阵,我使用的是np.ix\ux:
将numpy导入为np
r=np.random.rand(3,3)
l=[1,2]
r[np.ix(l,l)]
然后,r[np.ix(l,l)]将选择一个2x2矩阵,用**标记:
0
1.
2.
0
r0,0
r0,1
r0,2
1.
r1,0
**r1,1**
**r1,2**
2.
r2,0
**r2,1**
**r2,2**
使用np.ix相当于
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 75 页