我使用numpy并有两个数组,可以读取genfromtxt
.
它们的形状<10000,>
根据np.shape()
.
我希望这两个向量与形状一起在数组中<10000,2>
.现在我使用:
x = zip(x1,x2)
Run Code Online (Sandbox Code Playgroud)
但我不确定是否有numpy功能可以更好/更有效地做到这一点.我不认为连接符合我的想法(或者我做错了).
我正在尝试使用 numpy 的 genfromtxt 将键长和能量的 csv 读取到数组中(用于生成势能表面和反应路径,所以我将使用 scipy.interpolate - 因此需要每个值...... )。
问题是 genfromtxt 将每个 csv 输入的第一个值读取为 NaN。我该如何解决?
例如,我在 dcm_oh_lengths.csv 中有以下数据:
1.0763,1.1263,1.1763,1.2263,1.2763,1.3263,1.3763,1.4263,1.4763,1.5263,1.5763
Run Code Online (Sandbox Code Playgroud)
我称之为
1.0763,1.1263,1.1763,1.2263,1.2763,1.3263,1.3763,1.4263,1.4763,1.5263,1.5763
Run Code Online (Sandbox Code Playgroud)
oh_all 返回
array([ nan, 1.1263, 1.1763, 1.2263, 1.2763, 1.3263, 1.3763, 1.4263,
1.4763, 1.5263, 1.5763])
Run Code Online (Sandbox Code Playgroud)
因此第一个数据点被读取为缺失。如果我将数据更改为
,1.0763,1.1263,1.1763,1.2263,1.2763,1.3263,1.3763,1.4263,1.4763,1.5263,1.5763
Run Code Online (Sandbox Code Playgroud)
然后做同样的事情返回
array([ nan, 1.0763, 1.1263, 1.1763, 1.2263, 1.2763, 1.3263, 1.3763,
1.4263, 1.4763, 1.5263, 1.5763])
Run Code Online (Sandbox Code Playgroud)
作为一个较长的示例,能量 (dcm_energies.csv) 的前几行是:
-7162979.201,-7163010.482,-7163033.634,-7163043.279,-7163060.113,-7163068.894,-7163076.255,-7163078.541,-7163080.908,-7163056.179,-7163081.743
-7163005.74,-7163031.808,-7163050.794,-7163056.603,-7163064.619,-7163070.65,-7163080.606,-7163080.682,-7163081.125,-7163052.444,-7163078.824
-7163024.746,-7163046.199,-7163061.278,-7163063.603,-7163068.336,-7163071.692,-7163079.11,-7163077.25,-7163075.861,-7163043.325,-7163070.561 (...)
Run Code Online (Sandbox Code Playgroud)
并通过 genfromtxt 调用它,如上所示:
array([[ nan, -7163010.482, -7163033.634, -7163043.279,
-7163060.113, -7163068.894, -7163076.255, -7163078.541,
-7163080.908, -7163056.179, -7163081.743],
[-7163005.74 , -7163031.808, -7163050.794, -7163056.603, …
Run Code Online (Sandbox Code Playgroud) 我使用numpy.genfromtxt
这样生成数据:
ConvertToDate = lambda s:datetime.strptime(s,"%d/%m/%Y")
data= numpy.genfromtxt(open("PSECSkew.csv", "rb"),
delimiter=',',
dtype=[('CalibrationDate', datetime),('Expiry', datetime), ('B0', float), ('B1', float), ('B2', float), ('ATMAdjustment', float)],
converters={0: ConvertToDate, 1: ConvertToDate})
Run Code Online (Sandbox Code Playgroud)
我现在想要提取最后4列(每行但在循环中,所以我们只考虑一行)来分离变量.所以我这样做:
B0 = data[0][2]
B1 = data[0][3]
B2 = data[0][4]
ATM = data[0][5]
Run Code Online (Sandbox Code Playgroud)
但是,如果我能做到这一点(例如我可以使用普通的2D ndarray)我会更喜欢它:
B0, B1, B2, ATM = data[0][2:]
Run Code Online (Sandbox Code Playgroud)
但这给了我一个"无效索引"错误.有没有办法很好地做到这一点,还是应该坚持使用4线方法?
我正在尝试将 csv 文件转换为 RGB 文件,如下所示:
from PIL import Image, ImageDraw
from numpy import genfromtxt
g = open('myFile.csv','r')
temp = genfromtxt(g, delimiter = ',')
im = Image.fromarray(temp).convert('RGB')
pix = im.load()
rows, cols = im.size
for x in range(cols):
for y in range(rows):
print str(x) + " " + str(y)
pix[x,y] = (int(temp[x,y] // 256 // 256 % 256),int(temp[x,y] // 256 % 256),int(temp[x,y] % 256))
im.save(g.name[0:-4] + '.jpeg')
Run Code Online (Sandbox Code Playgroud)
问题是倒数第二行给了我一个“IndexError:图像索引超出范围”。当我打印出 x 和 y 时,我发现只要它们中的任何一个达到 5(我的文件的宽度,而不是高度),就会发生这种情况,无论我如何使用它,无论 x 或 y 达到 5,它都会引发错误这就是我不明白的。也欢迎任何更好的实现。
我有制表符分隔文件(city-data.txt):
Alabama Montgomery 32.361538 -86.279118
Alaska Juneau 58.301935 -134.41974
Run Code Online (Sandbox Code Playgroud)
有可能以某种方式读取前两列作为字符串,最后两列作为浮点数?
我的输出应该如下所示:
[(Alabama,Montgomery,32.36,-86.28),
(Alaska,Juneau,58.30,-134.42)]
Run Code Online (Sandbox Code Playgroud)
我试过了:
mylist2=np.genfromtxt(r'city-data.txt', delimiter='\t', dtype=("<S15","
<S15", float, float)).tolist()
Run Code Online (Sandbox Code Playgroud)
这给了我字节类型的前两列:
[(b'Alabama', b'Montgomery', 32.361538, -86.279118),
(b'Alaska', b'Juneau', 58.301935, -134.41974)]
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
with open('city-data.txt') as f:
mylist = [tuple(i.strip().split('\t')) for i in f]
Run Code Online (Sandbox Code Playgroud)
这给了我字符串类型的所有列:
[('Alabama', 'Montgomery', '32.361538', '-86.279118'),
('Alaska', 'Juneau', '58.301935', '-134.41974')]
Run Code Online (Sandbox Code Playgroud)
我无法想出如何实现我需要的东西......
genfromtxt ×5
numpy ×5
python ×4
arrays ×1
format ×1
indexing ×1
python-2.7 ×1
string ×1
zip ×1