Articles of punto flotante

Literal no válido para float (): 0.000001, ¿cómo corregir un error?

Tengo un archivo .csv que contiene 3 columnas de datos. Necesito crear un nuevo archivo de salida que incluya un conjunto específico de datos de la primera y tercera columna del archivo original. La tercera columna contiene valores decimales, y creo que en tal caso he usado la función float () de python. He intentado […]

Diccionario que no reconoce las teclas de punto flotante

Tengo un diccionario llamado G. Cuando ingreso las G. keys () , un ejemplo de la salida es: >>> G.keys () [(1490775.0, 12037425.0), (1493775.0, 12042675.0), (1481055.0, 12046305.0), (1503105.0, 12047415.0), (1488585.0, 12050685.0), (1483935.0, 12051405.0),… Cuando uso la key in G operación key in G el resultado es falso. >>> (1490775.0, 12037425.0) in G False ¿Por qué […]

Python numpy float16 datatype operaciones, y float8?

al realizar operaciones matemáticas en números float16 Numpy, el resultado también está en el número de tipo float16. Mi pregunta es ¿cómo se calcula exactamente el resultado? Diga que estoy multiplicando / sumndo dos números float16. ¿Python genera el resultado en float32 y luego trunca / redondea el resultado a float16? ¿O es el cálculo […]

Usando la función math.isclose con valores cercanos a 0

Como sabemos, debido a la representación binaria de números, esta expresión se evalúa como False (al menos en Python): 0.2 + 0.4 == 0.6 Para poder verificar la igualdad dentro de los errores numéricos, el módulo de ofertas math isclose : import math math.isclose(0.2 + 0.4 , 0.6) Esta última expresión produce True como se […]

Django, la división entre dos resultados de anotación no se calculará correctamente

Estoy tratando de obtener una división entre dos resultados de anotación en queryset. La impresión es mucho más grande que el clic, por lo que debería obtener el décimo decimal. def get_queryset(self): return googleData.objects.filter(account=self.account_name).\ values(‘date’).\ annotate(Sum(‘click’), Sum(‘impression’), Sum(‘converted_click’), Sum(‘conversion_value’), Sum(‘cost’), Sum(‘conversion_value’), ctr_monthly= Sum(‘click’)/Sum(‘impression’)).\ order_by(‘-date’) Problema aquí ctr_monthly= Sum(‘click’)/Sum(‘impression’)) En plantilla tengo: {{ googleData.ctr_monthly | floatformat:2}} […]

Matemáticas de punto flotante en python / numpy no reproducibles en máquinas

Comparando los resultados de un cálculo de punto flotante en un par de máquinas diferentes, están produciendo constantemente resultados diferentes. Aquí hay un ejemplo simplificado que reproduce el comportamiento: import numpy as np from numpy.random import randn as rand M = 1024 N = 2048 np.random.seed(0) a = rand(M,N).astype(dtype=np.float32) w = rand(N,M).astype(dtype=np.float32) b = np.dot(a, […]

¿Crear un archivo wav flotante de 32 bits en python?

Quiero crear archivos flotantes WAV de 32 bits en Python (2.x). Mientras que los archivos WAV “estándar” generalmente usan int, muchas aplicaciones de audio profesionales procesan (y guardan) datos de audio como flotante. El módulo de wave estándar no es capaz de hacer esto: http://bugs.python.org/issue16525 ¿Alguien lo ha logrado sin usar módulos parcheados? Tnx por […]

Especificador de formato de precisión de punto flotante de Python

Digamos que tengo algunos números de 32 bits y algunos de 64 bits: >>> import numpy as np >>> w = np.float32(2.4) >>> x = np.float32(4.555555555555555) >>> y = np.float64(2.4) >>> z = np.float64(4.555555555555555) Puedo imprimirlos con %f pero tiene decimales adicionales que no son necesarios: >>> ‘%f %f %f %f’ % (w, x, y, […]

Unittest (a veces) falla debido a imprecisión de punto flotante

Tengo un vector de clase que representa un punto en el espacio tridimensional. Este vector tiene un método de normalize(self, length = 1) que escala el vector hacia abajo / arriba para que tenga length == vec.normalize(length).length . La prueba de unidad para este método a veces falla debido a la imprecisión de los números […]

Errores de redondeo en la división de pisos Python.

Sé que los errores de redondeo ocurren en la aritmética de punto flotante, pero alguien puede explicar la razón de esto: >>> 8.0 / 0.4 # as expected 20.0 >>> floor(8.0 / 0.4) # int works too 20 >>> 8.0 // 0.4 # expecting 20.0 19.0 Esto sucede tanto en Python 2 como en 3 […]