我在Python中看到的最常见的SQLite接口是sqlite3,但是有什么能与NumPy数组或重组一起使用吗?我的意思是一个识别数据类型并且不需要逐行插入,并提取到NumPy(rec)数组......?有点像在R的SQL函数RDB或sqldf库,如果任何人都熟悉那些(它们导入/导出/追加整个表或表的子集或R数据表).
我正试图将numpy放在带有ARM处理器的系统上.我对这些处理器没有多少经验,所以我不确定从哪里开始.我试图通过谷歌搜索答案,但没有成功找到有关交叉编译numpy的细节.我目前在机器上有python版本2.4,我正在尝试导入numpy 1.6.2.关于我可以从哪里开始的任何建议?
我有一个功能作用于3D阵列的每个2D切片.如何对函数进行向量化以避免循环以提高性能?例如:
def interp_2d(x0,y0,z0,x1,y1):
# x0, y0 and z0 are 2D array
# x1 and y1 are 2D array
# peform 2D interpolation
return z1
# now I want to call the interp_2d for each 2D slice of z0_3d as following:
for k in range(z0_3d.shape[2]):
z1_3d[:,:,k]=interp_2d(x0, y0, z0_3d[:,:,k], x1, y1)
Run Code Online (Sandbox Code Playgroud) 我试图在方程组中求解m1,m2,m3,m4,这样:
y=(m1*x1)+(m2*x2)+(m3*x3)+(m4*x4)
Run Code Online (Sandbox Code Playgroud)
哪里:
x1=[x11,x12,x13...]
x2=[x21,x22,x23...]
x3=[x31,x32,x33...]
x4=[x41,x42,x43...]
y=[y1,y2,y3,y4,...]
Run Code Online (Sandbox Code Playgroud)
我一直在努力做到:
m=numpy.linalg.lstsq(A,y)[0]
Run Code Online (Sandbox Code Playgroud)
哪里:
A = [[x11,x21,x31,x41],[x12,x22,x32,x42],.....]
Run Code Online (Sandbox Code Playgroud)
但是我的结果与Mat-lab中的类似分析不匹配.
您可能会看到的任何建议或问题都非常有用!
谢谢.
我已经将文本添加到绘图中,在每行中编码,然后调整它看起来像样,增加或减少宽度,或更改位置.但是,有没有办法让Python知道你想要文本的位置以及你想要它的设置方式?然后我可以添加文本,Python将计算出细节.
例如,看看下面的图片:
在图中,我在左上角有3行文字,在图的线上有一行.
我不得不调整3条线以获得合适的间距.这不是一项艰巨的任务,但如果我能说这里是文本,这里就是位置,那将很容易,然后Python以适当的间距堆叠它.
对于单独的线路,我不得不进行调整,因此它不在线上并降低线路.对于这种情况,有可能告诉python我想在情节上方的文字和80%下线?
我习惯于LaTeX在没有硬编码坐标的情况下进行调整的地方.优点是
(1) if I want to change the location, I can change the percentage shift and not the coordinate.
(2) if the line is angled, the text will adjust to the line.
Run Code Online (Sandbox Code Playgroud)
(2)的优点是我试图将文字放在图中顶部向上倾斜的文本上.
可以这样做,还是我要求多少?如果是这样,我该怎么做?
以下是实现该图的代码:
import numpy as np
import pylab
r1 = 1 # AU Earth
r2 = 1.524 # AU Mars
deltanu = 75 * np.pi / 180 # angle in radians
mu = 38.86984154054163
c = np.sqrt(r1 ** 2 + …Run Code Online (Sandbox Code Playgroud) 在下面的Python中,我有五个函数包含在func我必须集成的数组中.代码调用使用f2py以下代码生成的外部Fortran模块:
import numpy as np
from numpy import cos, sin , exp
from trapzdv import trapzdv
def func(x):
return np.array([x**2, x**3, cos(x), sin(x), exp(x)])
if __name__ == '__main__':
xs = np.linspace(0.,20.,100)
ans = trapzdv(func,xs,5)
print 'from Fortran:', ans
print 'exact:', np.array([20**3/3., 20**4/4., sin(20.), -cos(20.), exp(20.)])
Run Code Online (Sandbox Code Playgroud)
Fortran例程是:
subroutine trapzdv(f,xs,nf,nxs,result)
integer :: I
double precision :: x1,x2
integer, intent(in) :: nf, nxs
double precision, dimension(nf) :: fx1,fx2
double precision, intent(in), dimension(nxs) :: xs
double precision, intent(out), dimension(nf) :: …Run Code Online (Sandbox Code Playgroud) 在这个问题阐述了如何访问lower和upper给定矩阵的triagular部分,说:
m = np.matrix([[11, 12, 13],
[21, 22, 23],
[31, 32, 33]])
Run Code Online (Sandbox Code Playgroud)
在这里,我需要在一维数组中转换矩阵,可以这样做:
indices = np.triu_indices_from(m)
a = np.asarray( m[indices] )[-1]
#array([11, 12, 13, 22, 23, 33])
Run Code Online (Sandbox Code Playgroud)
在进行大量计算后a,更改其值,它将用于填充对称的2D数组:
new = np.zeros(m.shape)
for i,j in enumerate(zip(*indices)):
new[j]=a[i]
new[j[1],j[0]]=a[i]
Run Code Online (Sandbox Code Playgroud)
返回:
array([[ 11., 12., 13.],
[ 12., 22., 23.],
[ 13., 23., 33.]])
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来实现这一目标?更具体地说,避免Python循环重建2D数组?
我有500个花车的清单.
我想从列表中选出11个数字,当加在一起时总和为N,N在一个范围内X <= N <= Y
这基本上是为了一个梦幻足球比赛,我们在人员阵容中自动选出11名球员.
总成本应该在一个范围内,而不是随机的.
一个解决方案可能是连续随机挑选11名玩家,直到我得到一个符合范围的总数,但我想知道是否有更优雅的方法?
我对python有点新鲜.我有一个名为featureExtraction的函数,它返回一个图像的一维数组.我需要逐行堆叠所有这样的1-d数组以形成2-d数组.我在MATLAB中有以下等效代码.
I1=imresize(I,[256 256]);
Features(k,:) = featureextraction(I1);
Run Code Online (Sandbox Code Playgroud)
featureextraction返回1-d行向量,该向量逐行堆叠以形成2-d数组.python中的等效代码片段是什么?
先感谢您.
我有一个3D数组,我需要在最后一个轴上"挤"它,这样我得到一个2D数组.我需要以下面的方式做到这一点.对于前两个维度的索引的每个值,我知道应从中获取值的第三维的索引值.
例如,我知道,如果i1 == 2和i2 == 7再i3 == 11.这意味着out[2,7] = inp[2,7,11].从前两个维度到第三个维度的映射在另一个2D阵列中给出.换句话说,我有一个数组,其中2,7我的位置11作为一个值.
所以,我的问题是如何组合这两个数组(3D和2D)来获得输出数组(2D).