我正在尝试在sqlite3数据库中存储大约1000个浮点数的numpy数组,但我不断收到错误"InterfaceError:Error binding parameter 1 - 可能不支持的类型".
我的印象是BLOB数据类型可能是任何东西,但它肯定不适用于numpy数组.这是我试过的:
import sqlite3 as sql
import numpy as np
con = sql.connect('test.bd',isolation_level=None)
cur = con.cursor()
cur.execute("CREATE TABLE foobar (id INTEGER PRIMARY KEY, array BLOB)")
cur.execute("INSERT INTO foobar VALUES (?,?)", (None,np.arange(0,500,0.5)))
con.commit()
Run Code Online (Sandbox Code Playgroud)
我可以使用另一个模块将numpy数组放入表中吗?或者我可以将numpy数组转换为Python中的另一种形式(如我可以拆分的列表或字符串),sqlite会接受吗?绩效不是优先事项.我只是想让它起作用!
谢谢!
我试图将架构test.db
仅(即没有数据)转储到schema.sql
OS X中从命令行调用的文件中,而不启动sqlite3.
我知道我能做到:
sqlite3
.open test.db
.output schema.sql
.schema
.quit
Run Code Online (Sandbox Code Playgroud)
但是我不想启动sqlite 3.这......
echo '.output schema.sql' | sqlite3 test.db
Run Code Online (Sandbox Code Playgroud)
创建空文件,但这...
echo '.schema' | sqlite3 test.db
Run Code Online (Sandbox Code Playgroud)
仅打印架构.如何从终端将其写入该文件?
谢谢!
我有一个三个大型阵列的Numpy ndarray,我只想将路径存储到某处生成数据的文件中.一些玩具数据:
A = array([[ 6.52479351e-01, 6.54686928e-01, 6.56884432e-01, ...,
2.55901861e+00, 2.56199503e+00, 2.56498647e+00],
[ nan, nan, 9.37914686e-17, ...,
1.01366425e-16, 3.20371075e-16, -6.33655223e-17],
[ nan, nan, 8.52057308e-17, ...,
4.26943463e-16, 1.51422386e-16, 1.55097437e-16]],
dtype=float32)
Run Code Online (Sandbox Code Playgroud)
我不能将它作为数组附加到ndarray,因为它需要与其他三个相同的长度.
我可以添加np.zeros(len(A[0]))
并将第一个值作为字符串,以便我可以用A [-1] [0]检索它,但这看起来很荒谬.
是否有一些元数据键我可以用来存储字符串,/Documents/Data/foobar.txt'
所以我可以用类似的东西检索它A.metadata.comment
?
谢谢!
我有一张我发现轮廓的图像,skimage.measure.find_contours()
但现在我想为完全在最大闭合轮廓之外的像素创建一个蒙版。知道如何做到这一点吗?
修改文档中的示例:
import numpy as np
import matplotlib.pyplot as plt
from skimage import measure
# Construct some test data
x, y = np.ogrid[-np.pi:np.pi:100j, -np.pi:np.pi:100j]
r = np.sin(np.exp((np.sin(x)**2 + np.cos(y)**2)))
# Find contours at a constant value of 0.8
contours = measure.find_contours(r, 0.8)
# Select the largest contiguous contour
contour = sorted(contours, key=lambda x: len(x))[-1]
# Display the image and plot the contour
fig, ax = plt.subplots()
ax.imshow(r, interpolation='nearest', cmap=plt.cm.gray)
X, Y = ax.get_xlim(), ax.get_ylim()
ax.step(contour.T[1], contour.T[0], linewidth=2, c='r') …
Run Code Online (Sandbox Code Playgroud) 我有一个图像,我试图使用skimage.PiecewiseAffineTransform
和来扭曲skimage.warp
。我有一组控制点 ( true
) 映射到一组新的控制点 ( ideal
),但扭曲没有返回我期望的结果。
在这个例子中,我有一个简单的波长梯度,我试图将其“拉直”成列。(您可能会问为什么我要查找轮廓和插值,但那是因为我实际上将此代码应用于更复杂的用例。我只是想重现这个简单示例的所有代码,这会导致相同的奇怪输出。)
为什么我的输出图像只是将输入图像扭曲成正方形和插图?我正在使用 Python 2.7.12 和 matplotlib 1.5.1。这是代码。
import matplotlib.pyplot as plt
import numpy as np
from skimage import measure, transform
true = np.array([range(i,i+10) for i in range(20)])
ideal = np.array([range(10)]*20)
# Find contours of ideal and true images and create list of control points for warp
true_control_pts = []
ideal_control_pts = []
for lam in ideal[0]:
try:
# Get the isowavelength contour in the true and ideal images …
Run Code Online (Sandbox Code Playgroud) 我知道我可以测试set1是否是set2的子集:
{'a','b','c'} <= {'a','b','c','d','e'} # True
Run Code Online (Sandbox Code Playgroud)
但以下也是正确的:
{'a','a','b','c'} <= {'a','b','c','d','e'} # True
Run Code Online (Sandbox Code Playgroud)
我如何考虑集合中元素的出现次数,以便:
{'a','b','c'} <= {'a','b','c','d','e'} # True
{'a','a','b','c'} <= {'a','b','c','d','e'} # False since 'a' is in set1 twice but set2 only once
{'a','a','b','c'} <= {'a','a','b','c','d','e'} # True because both sets have two 'a' elements
Run Code Online (Sandbox Code Playgroud)
我知道我可以这样做:
A, B, C = ['a','a','b','c'], ['a','b','c','d','e'], ['a','a','b','c','d','e']
all([A.count(i) == B.count(i) for i in A]) # False
all([A.count(i) == C.count(i) for i in A]) # True
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有一些更简洁的东西set(A).issubset(B,count=True)
或一种方法来保持列表理解.谢谢!
我想将0.0到39.9之间的浮点数转换为字符串.如果分别为1,2或3,则用L,T或Y替换十位数.并附加一个M,如果它在那些.例如,22.3将返回T2.3,8.1将返回M8.1,依此类推.否则,返回浮动.
这段代码当然有效,但我想知道是否有更简单(如果不是单行)的解决方案.这是代码:
def specType(SpT):
if 0 <= SpT <= 9.9:
return 'M{}'.format(SpT)
elif 10.0 <= SpT <= 19.9:
return 'L{}'.format(SpT - 10)
elif 20.0 <= SpT <= 29.9:
return 'T{}'.format(SpT - 20)
elif 30.0 <= SpT <= 39.9:
return 'Y{}'.format(SpT - 30)
else:
return SpT
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有三个列表:
a = np.array([True, True, False, False])
b = np.array([False, False, False, False])
c = np.array([False, False, False, True])
Run Code Online (Sandbox Code Playgroud)
我想添加数组,以便新数组只有False
所有相应的元素都有False
.例如,输出应为:
d = np.array([True, True, False, True])
Run Code Online (Sandbox Code Playgroud)
但是,d = np.add(a,b,c)
退货:
d = np.array([True, True, False, False])
Run Code Online (Sandbox Code Playgroud)
为什么这样,我该如何解决?谢谢!
在测试多个条件是否为True时,是and
语句还是all()
更快?例如:
if '1234'.isdigit() and '4567'.isdigit() and '7890'.isdigit():
print "All are digits!"
Run Code Online (Sandbox Code Playgroud)
要么
if all(['1234'.isdigit(), '4567'.isdigit(), '7890'.isdigit()]):
print "All are digits!"
Run Code Online (Sandbox Code Playgroud)
谢谢!
python ×8
numpy ×4
scikit-image ×2
sqlite ×2
arrays ×1
boolean ×1
contour ×1
macos ×1
masked-array ×1
multiplicity ×1
multiset ×1
python-2.7 ×1
set ×1
sql ×1
subset ×1
terminal ×1