Questions tagged «numpy»

NumPy是Python编程语言的科学和数字计算扩展。

1
numpy:我应该使用newaxis还是None?
在numpy中,可以使用切片语法中的'newaxis'对象创建长度为1的轴,例如: import numpy as np print np.zeros((3,5))[:,np.newaxis,:].shape # shape will be (3,1,5) 该文档的状态是一个也可以用None代替newaxis,效果是完全一样的。 有什么理由选择一个?是否有一般偏好或样式指南?我的印象是newaxis更受欢迎,可能是因为它更明确。那么,有什么理由None允许这样做?
91 python  numpy 

6
熊猫数据框/ numpy数组“轴”定义中的歧义
对于如何定义python轴以及它们是否引用DataFrame的行或列,我一直感到困惑。考虑下面的代码: >>> df = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], columns=["col1", "col2", "col3", "col4"]) >>> df col1 col2 col3 col4 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 因此,如果调用df.mean(axis=1),我们将在各行中获得均值: >>> df.mean(axis=1) 0 1 1 2 2 3 …

1
查看到一个numpy数组?
我有一个二维numpy数组。有没有一种方法可以在其上创建一个包含第一k行和所有列的视图? 关键是要避免复制基础数据(数组太大,无法进行部分复制)。
90 python  numpy  scikits 

3
Python中a-= b和a = a-b之间的区别
我最近将这种解决方案应用于平均每N行矩阵。尽管该解决方案总体上可行,但将其应用于7x1阵列时遇到了问题。我注意到问题出在使用-=运算符时。举一个小例子: import numpy as np a = np.array([1,2,3]) b = np.copy(a) a[1:] -= a[:-1] b[1:] = b[1:] - b[:-1] print a print b 输出: [1 1 2] [1 1 1] 因此,在数组的情况下a -= b产生的结果与有所不同a = a - b。我认为到目前为止,这两种方式是完全相同的。有什么区别? 我提到的用于对矩阵中的每N行求和的方法如何工作(例如,对于7x4矩阵而不是7x1数组)?

4
np.mean和tf.reduce_mean有什么区别?
在MNIST初学者教程中,有一条声明 accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) tf.cast基本上改变了对象的张量类型,但是tf.reduce_mean和之间有什么区别np.mean? 这是有关的文档tf.reduce_mean: reduce_mean(input_tensor, reduction_indices=None, keep_dims=False, name=None) input_tensor:张量减少。应为数字类型。 reduction_indices:要缩小的尺寸。如果None(默认)减小所有尺寸。 # 'x' is [[1., 1. ]] # [2., 2.]] tf.reduce_mean(x) ==> 1.5 tf.reduce_mean(x, 0) ==> [1.5, 1.5] tf.reduce_mean(x, 1) ==> [1., 2.] 对于一维矢量,它看起来像np.mean == tf.reduce_mean,但我不了解tf.reduce_mean(x, 1) ==> [1., 2.]。tf.reduce_mean(x, 0) ==> [1.5, 1.5]的意思是合理的,因为的意思是[1, 2]和[1, 2]是[1.5, 1.5],但是这是怎么回事tf.reduce_mean(x, 1)?

5
替换numpy数组中的负值
有没有一种简单的方法可以将数组中的所有负值都替换为0? 我对如何使用NumPy数组有一个完整的了解。 例如 a = array([1, 2, 3, -4, 5]) 我要回去 [1, 2, 3, 0, 5] a < 0 给出: [False, False, False, True, False] 这就是我遇到的问题-如何使用此数组修改原始数组。
90 python  numpy 

6
NumPy通过使用索引列表为每行选择特定的列索引
我正在努力选择NumPy矩阵每行的特定列。 假设我有以下矩阵,我将其称为X: [1, 2, 3] [4, 5, 6] [7, 8, 9] 我list每行还有一个列索引,我将其称为Y: [1, 0, 2] 我需要获取值: [2] [4] [9] 除了使用listwith索引之外Y,我还可以生成形状与X每个列都是0-1值范围内的bool/的形状相同的矩阵int,指示这是否是必需的列。 [0, 1, 0] [1, 0, 0] [0, 0, 1] 我知道这可以通过遍历数组并选择所需的列值来完成。但是,这将在大数据数组上频繁执行,这就是为什么它必须尽可能快地运行。 因此,我想知道是否有更好的解决方案? 谢谢。

11
如何使用Python和Numpy计算r平方?
我正在使用Python和Numpy计算任意次数的最佳拟合多项式。我传递了x值,y值以及要拟合的多项式的阶数(线性,二次等)的列表。 这很有效,但是我还想计算r(相关系数)和r-平方(确定系数)。我正在将结果与Excel的最佳拟合趋势线功能及其计算的r平方值进行比较。使用此方法,我知道我正在为线性最佳拟合(度等于1)正确计算r平方。但是,我的函数不适用于度数大于1的多项式。 Excel能够做到这一点。如何使用Numpy计算高阶多项式的r平方? 这是我的功能: import numpy # Polynomial Regression def polyfit(x, y, degree): results = {} coeffs = numpy.polyfit(x, y, degree) # Polynomial Coefficients results['polynomial'] = coeffs.tolist() correlation = numpy.corrcoef(x, y)[0,1] # r results['correlation'] = correlation # r-squared results['determination'] = correlation**2 return results

1
16331239353195370.0有特殊意义吗?
使用import numpy as np我注意到 np.tan(np.pi/2) 在标题中给出数字而不是 np.inf 16331239353195370.0 我很好奇这个数字。它与某些系统机器精度参数有关吗?我可以用某些东西计算出来吗?(我正在考虑类似的内容sys.float_info) 编辑:在其他环境(例如Java,octace,matlab)中,相同的结果的确可以重现。

5
一致地创建相同的随机numpy数组
我正在等待另一个开发人员完成一段代码,该代码将返回一个形状为(100,2000)的np数组,其值为-1,0或1。 同时,我想随机创建一个具有相同特征的数组,以便可以在开发和测试中抢先一步。问题是我希望这个随机创建的数组每次都相同,这样我就不会在每次重新运行过程时都在不断更改其值的数组上进行测试。 我可以像这样创建数组,但是有一种方法可以创建它,使其每次都相同。我可以腌制然后解开物体,但是想知道是否还有另一种方法。 r = np.random.randint(3, size=(100, 2000)) - 1
89 python  random  numpy 

2
在matplotlib imshow()图形轴上更改值
说我有一些输入数据: data = np.random.normal(loc=100,scale=10,size=(500,1,32)) hist = np.ones((32,20)) # initialise hist for z in range(32): hist[z],edges = np.histogram(data[:,0,z],bins=np.arange(80,122,2)) 我可以使用绘制它imshow(): plt.imshow(hist,cmap='Reds') 得到: 但是,x轴值与输入数据不匹配(即平均值为100,范围从80到122)。因此,我想更改x轴以显示中的值edges。 我努力了: ax = plt.gca() ax.set_xlabel([80,122]) # range of values in edges ... # this shifts the plot so that nothing is visible 和 ax.set_xticklabels(edges) ... # this labels the …

10
如何从列表Python / NumPy中删除Nan
我有一个列出值的列表,我得到的值之一是“ nan” countries= [nan, 'USA', 'UK', 'France'] 我试图将其删除,但每次都会收到错误消息 cleanedList = [x for x in countries if (math.isnan(x) == True)] TypeError: a float is required 当我尝试这个: cleanedList = cities[np.logical_not(np.isnan(countries))] cleanedList = cities[~np.isnan(countries)] TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any …
89 python  numpy 

6
在多处理进程之间共享大型只读的Numpy数组
我有一个60GB的SciPy阵列(矩阵),必须在5个以上的multiprocessing Process对象之间共享。我看过numpy-sharedmem并在SciPy列表上阅读了此讨论。似乎有两种方法numpy-sharedmem-使用amultiprocessing.RawArray()和将NumPy dtypes映射到ctypes。现在,这numpy-sharedmem似乎是要走的路,但是我还没有看到一个很好的参考示例。我不需要任何类型的锁,因为数组(实际上是矩阵)将是只读的。现在,由于它的大小,我想避免复制。这听起来像是正确的方法是创建唯一的数组作为副本sharedmem数组,然后将它传递给Process对象?几个特定的​​问题: 实际将sharedmem句柄传递给子对象的最佳方法是Process()什么?我是否需要一个队列来传递一个数组?管道会更好吗?我可以仅将它作为参数传递给Process()子类的init(我假设它是被腌制的)吗? 在上面链接的讨论中,提到numpy-sharedmem不是64位安全的吗?我肯定使用了一些不是32位可寻址的结构。 该RawArray()方法是否需要权衡?慢一点,孩子吗? numpy-sharedmem方法是否需要任何ctype到dtype的映射? 有没有人举一些开源代码的例子呢?我是一个非常动手的知识,如果没有任何好的榜样,很难使它成功。 如果有任何其他我可以提供的信息,以帮助其他人进行澄清,请发表评论,然后添加。谢谢! 这需要在Ubuntu Linux和Maybe Mac OS上运行,但是可移植性并不是一个大问题。

6
删除numpy数组中的行
我有一个可能看起来像这样的数组: ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875, 0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]] 请注意,其中一行的结尾处为零。我想删除任何包含零的行,而保留所有包含非零值的行。 但是,每次填充时,数组将具有不同的行数,并且零将每次位于不同的行中。 我使用下面的代码行获取每行中非零元素的数量: NumNonzeroElementsInRows = (ANOVAInputMatrixValuesArray != 0).sum(1) 对于上面的数组,NumNonzeroElementsInRows包含:[5 4] 五个表示第0行中的所有可能值都不为零,而四个表示第1行中的可能值之一为零。 因此,我试图使用以下代码行来查找和删除包含零值的行。 for q in range(len(NumNonzeroElementsInRows)): if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max(): p.delete(ANOVAInputMatrixValuesArray, q, axis=0) 但是由于某种原因,即使执行大量打印命令表明所有变量似乎都正确填充了代码,该代码似乎也无能为力。 必须有一些简单的方法来简单地“删除包含零值的任何行”。 谁能告诉我要编写什么代码来完成此任务?

2
带熊猫的float64 to_csv
我正在读取带有如下浮动数字的CSV: Bob,0.085 Alice,0.005 并导入到数据框,然后将此数据框写入新位置 df = pd.read_csv(orig) df.to_csv(pandasfile) 现在pandasfile有: Bob,0.085000000000000006 Alice,0.0050000000000000001 发生什么事?也许我必须转换为float32之类的其他类型? 我正在使用pandas 0.9.0和numpy 1.6.2。
88 python  numpy  pandas 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.