现在我有一个包含浮点数据的二进制文件,每个数据是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) 我有一个2D点(x,y),并且我想使用此帖子拟合椭圆
但是我的结果是axes = [ 0.93209407 nan]因为函数中ellipse_axis_length的down2是负数,所以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)