我有一个起始数组:
[(1, [-112.01268501699997, 40.64249414272372])
(2, [-111.86145708699996, 40.4945008710162])]
Run Code Online (Sandbox Code Playgroud)
其中第一列是int,第二列是带有浮点数的元组.我需要添加一个名为USNG的字符串列.
然后我创建一个结构化的numpy数组:
dtype = numpy.dtype([('USNG', '|S100')])
x = numpy.empty(array.shape, dtype=dtype)
Run Code Online (Sandbox Code Playgroud)
我想将x numpy数组附加到现有数组以添加新列,以便我可以为每一行输出一些信息.当我执行以下操作时:
numpy.append(array, x, axis=1)# I've also tried vstack and hstack
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
'TypeError: invalid type promotion'
Run Code Online (Sandbox Code Playgroud)
有关为什么会发生这种情况的任何建议?
谢谢
当我在 Jupyter Notebooks 中创建一个简单的表格时,表格出现在单元格的中心。我该怎么做才能将该表向左对齐而不是居中对齐?
Jupyter 的乳胶表示例:
| This | is |
|------|------|
| a | table|
Run Code Online (Sandbox Code Playgroud)
谢谢
你能创建一个包含所有唯一值的numpy数组吗?
myArray = numpy.random.random_integers(0,100,2500)
myArray.shape = (50,50)
Run Code Online (Sandbox Code Playgroud)
所以这里我有一个给定的随机50x50 numpy数组,但我可以有非唯一值.有没有办法确保每个价值都是独一无二的?
谢谢
我创建了一个基本函数来生成一个列表并填充一个唯一的整数.
dist_x = math.sqrt(math.pow((extent.XMax - extent.XMin), 2))
dist_y = math.sqrt(math.pow((extent.YMax - extent.YMin),2))
col_x = int(dist_x / 100)
col_y = int(dist_y / 100)
if col_x % 100 > 0:
col_x += 1
if col_y % 100 > 0:
col_y += 1
print col_x, col_y, 249*169
count = 1
a = []
for y in xrange(1, col_y + 1):
row = []
for x in xrange(1, col_x + 1):
row.append(count)
count …Run Code Online (Sandbox Code Playgroud) 我有一个对象类型的列,我想将对象的属性访问到另一列中。
import pandas as pd
class foo(object):
@property
def value(self):
return "bar"
if __name__ == "__main__":
a = [foo(), foo(), foo()]
df = pd.DataFrame(data=a, columns=['test'])
df['value'] = df['test'].value
Run Code Online (Sandbox Code Playgroud)
这失败并出现以下错误:
AttributeError: 'Series' object has no attribute 'value'
有没有办法调用类上的属性或函数来填充新列?
我有两个数组,第一个 np.array 是来自的点,第二个 np.array 是我需要计算的所有距离。
例子:
import numpy as np
from_array = np.array([(0,1), (1,1), ..., (x,y)])
to_array = np.array([(5,1), (3,1), ..., (x,y)])
Run Code Online (Sandbox Code Playgroud)
我需要做的是取第一个条目from_array并计算from_array[0]到to_array中所有点之间的所有距离,然后保持最大距离。
所以我可以为此蛮力:
def get_distances(from_array, to_array):
results = []
distances = []
for pt in from_array:
for to in to_array:
results.append(calc_dist(pt, to))
distances.append(results)
return distances
Run Code Online (Sandbox Code Playgroud)
但这很慢,我正在寻找一种优化的计算方式,因为我可以有数千个点。
最终目标是计算 Hausdorff 距离。
fhd = np.mean(np.min(SomeDistanceArray,axis=0))
rhd = np.mean(np.min(SomeDistanceArray,axis=1))
print (max(fhd, rhd))
Run Code Online (Sandbox Code Playgroud)
我想用numpy的这个任务只。我的距离可以是欧氏距离或平方欧氏距离。
所以我正在寻找帮助是计算两个 np.arrays 的欧几里德距离方法的优化方法。应该注意的是,数组 1 的行数可能比数组 2 多。这意味着二维数组的长度 (x,y) 可以将 10 行与 30 行进行比较。
我的数据帧上有一个简单的索引(0:n 的整数)。
如果我想要行索引值 1,10,100,我如何查询索引以仅获取那些行?
谢谢
我有一个给定的数组:
array = [(u'Andrew', -3, 3, 100.032) (u'Bob', -4, 4, 103.323) (u'Joe', -5, 5, 154.324)]
Run Code Online (Sandbox Code Playgroud)
这是从另一个进程(我无法控制)生成的CSV表,它输出这个numpy数组.我现在需要分配列的dtypes来进行进一步的分析.
我怎样才能做到这一点?
谢谢
我有一个熊猫数据框,我需要修改给定列中的所有值。每列将包含相同长度的字符串值。用户为每个值(例如:ex :)[1:3]和替换值提供要替换的索引"AAA"。
这会将值1到3的字符串替换为value AAA。
如何使用applymap,map或apply函数完成此操作?
谢谢
这是我使用下面标记的答案的最终解决方案:
import pandas as pd
df = pd.DataFrame({'A':['ffgghh','ffrtss','ffrtds'],
#'B':['ffrtss','ssgghh','d'],
'C':['qqttss',' 44','f']})
print df
old = ['g', 'r', 'z']
new = ['y', 'b', 'c']
vals = dict(zip(old, new))
pos = 2
for old, new in vals.items():
df.ix[df['A'].str[pos] == old, 'A'] = df['A'].str.slice_replace(pos,pos + len(new),new)
print df
Run Code Online (Sandbox Code Playgroud) 我有多个类都继承自单个基类,这是一个简单的例子:
class DataSource(object):
pass
class TableDataSource(DataSource):
pass
Run Code Online (Sandbox Code Playgroud)
如果我想确定这些类是否属于DataSource类型,我想我可以执行以下操作:
>>> tdl = TableDataSource()
>>> print tdl is DataSource
False
Run Code Online (Sandbox Code Playgroud)
所以我在这里回到假,如何检查从DataSource继承的所有类是否都是数据源类型对象,而不必专门检查每个类类型?这样可以更轻松地检查对象类型,以便进行其他功能.
谢谢.
我有一个tar文件来自http://download.geofabrik.de/africa/botswana-latest.osm.bz2
当我将文件保存到磁盘并使用Python tarfile库提取.osm文件时,我收到无效的标头错误.
有没有办法解决这个错误?
7zip可以打开文件并提取数据而不会出现问题,但我需要编写数据提取脚本.