我真的不明白为什么常规索引不能用于np.delete.是什么让np.s_如此特别?
例如,使用此代码,用于删除此数组的某些行.
inlet_names = np.delete(inlet_names, np.s_[1:9], axis = 0)
Run Code Online (Sandbox Code Playgroud)
为什么我不能简单地使用常规索引并做..
inlet_names = np.delete(inlet_names, [1:9], axis = 0)
Run Code Online (Sandbox Code Playgroud)
要么
inlet_names = np.delete(inlet_names, inlet_names[1:9], axis = 0)
Run Code Online (Sandbox Code Playgroud)
从我可以收集的内容来看,np.s_与np.index_exp相同,除了它不返回元组,但两者都可以在Python代码中的任何地方使用.
然后,当我查看np.delete函数时,它表明您可以使用类似的东西[1,2,3]
删除整个数组中的那些特定索引.那么什么阻止我使用类似的东西删除数组中的某些行或列?
我只是假设这种类型的索引在np.delete中被读取为其他东西所以你需要使用np.s_来指定,但我无法深入了解它究竟是什么读取它因为当我尝试第二段代码时,它只返回"无效语法".这很奇怪,因为这段代码有效......
inlet_names = np.delete(inlet_names, [1,2,3,4,5,6,7,8,9], axis = 0)
Run Code Online (Sandbox Code Playgroud)
所以我想答案可能是np.delete只接受你想要删除的索引列表.并且np._s返回您为切片指定的索引列表.
只是可以对我刚才所说的关于可能错误的函数的任何内容进行一些澄清和一些修正,因为很多这只是我的看法,文档并没有完全解释我试图理解的所有内容.我想我只是在思考这个问题,但我想真正理解它,如果有人能解释的话.
我正试图解决和涉及向量的颂歌,并且不能提出可行的答案.所以我将它分成6个分量,一个用于组件的每个时间导数,一个用于速度分量的每个时间导数.第一个值似乎是合理的,然后它跳到数百万的数字,我不知道为什么.老实说,我真的不确定如何做到这一点,我现在只是试一试.我似乎无法在网上找到任何信息,如果有这类问题的例子,可以使用一些帮助或一些链接.任何信息将非常感谢如何解决这个问题.
def dr_dt(y, t):
"""Integration of the governing vector differential equation.
d2r_dt2 = -(mu/R^3)*r with d2r_dt2 and r as vecotrs.
Initial position and velocity are given.
y[0:2] = position components
y[3:] = velocity components"""
G = 6.672*(10**-11)
M = 5.972*(10**24)
mu = G*M
r = np.sqrt(y[0]**2 + y[1]**2 + y[2]**2)
dy0 = y[3]
dy1 = y[4]
dy2 = y[5]
dy3 = -(mu / (r**3)) * y[0]
dy4 = -(mu / (r**3)) * y[1]
dy5 = -(mu / (r**3)) * y[2] …
Run Code Online (Sandbox Code Playgroud) delete-row ×1
indexing ×1
matplotlib ×1
numpy ×1
ode ×1
python ×1
python-2.7 ×1
scipy ×1
slice ×1
vector ×1