小编Jia*_* Li的帖子

在python中将浮点二进制文件读入二维数组

现在我有一个包含浮点数据的二进制文件,每个数据是4个字节,我想将其读入一个2D数组,当我使用

B1 = np.fromfile('/home/lijiao/Documents/transform/Data/AHI8_OBI_1000M_NOM_20160812_0040.hdf_B1.dat', dtype=float)
Run Code Online (Sandbox Code Playgroud)

它会给我一个长度为60500000的一维数组,那么如何以每4个字节读取数据呢?

编辑:这是我的解决方案:

filename = '/home/lijiao/Documents/transform/Data/AHI8_OBI_1000M_NOM_20160812_0040.hdf_B1.dat'

with open(filename, 'rb') as f:
data = np.fromfile(f, dtype=np.float32)
array = np.reshape(data, [11000, 11000])
Run Code Online (Sandbox Code Playgroud)

python arrays numpy binaryfiles

5
推荐指数
0
解决办法
9401
查看次数

使椭圆适合python中的一组数据点

我有一个2D点(x,y),并且我想使用此帖子拟合椭圆

给定点xi =(xi,yi),在Python中拟合椭圆

但是我的结果是axes = [ 0.93209407 nan]因为函数中ellipse_axis_lengthdown2是负数,所以res2无效,该怎么办?如果要根据数据集绘制椭圆,并计算数据点和椭圆之间的误差,该怎么办?

和代码是这样的:

import numpy as np
import numpy.linalg as linalg
import matplotlib.pyplot as plt

def fitEllipse(x,y):
    x = x[:,np.newaxis]
    y = y[:,np.newaxis]
    D =  np.hstack((x*x, x*y, y*y, x, y, np.ones_like(x)))
    S = np.dot(D.T,D)
    C = np.zeros([6,6])
    C[0,2] = C[2,0] = 2; C[1,1] = -1
    E, V =  linalg.eig(np.dot(linalg.inv(S), C))
    n =  np.argmax(np.abs(E))
    a = V[:,n]
    return a

def ellipse_center(a):
    b,c,d,f,g,a = a[1]/2, a[2], a[3]/2, a[4]/2, a[5], a[0] …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib data-fitting

5
推荐指数
2
解决办法
6637
查看次数

标签 统计

numpy ×2

python ×2

arrays ×1

binaryfiles ×1

data-fitting ×1

matplotlib ×1