我加载了一个包含两列矩阵的文本文件(例如下面)
[ 1 3
2 4
3 5
2 0]
Run Code Online (Sandbox Code Playgroud)
我的计算只是对每一行求和,即1 + 3,2 + 4,3 + 5和2 + 0.我使用以下代码:
data=np.loadtxt(fname="textfile.txt")## to load the above two column
xy= data
for XY in xy:
i=0
Z=XY(i,0)+XY(i,1)
i=i+1
print (Z)
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误说numpy.ndarray object is not callable.为什么会这样?我该怎么做这个简单的计算?谢谢.
嗨,我正在用Gnuplot绘制图形并使用以下命令。
set xrange [0:20]
set xtics 0,0.5
Run Code Online (Sandbox Code Playgroud)
图形和比例是正确的,因为我想要的。但是我只想标记整数点(例如0、1、2、3、4 ...,20),但我仍然希望每隔0.5个间隔保持抽动。
我该如何命令?谢谢
您好,我在 csv 文件中有一个非常大的数据集,我将其读入 panda 数据框。一列包含 json 字符串,我想将其值提取到新列中。下图显示了我的 csv 文件中的几行。
第四列(数据)是需要提取的列。第一级中的密钥(605,254,834,265 等)始终在变化,但数字始终与最后一列(“reg”)中的数字相同。我想提取“价格”、“状态”和“#结果”的值并将它们放入新列中。
我正在使用的代码是
import pandas as pd
import numpy as np
import json
from pandas import DataFrame
df = pd.read_csv('sample.csv')
df["result"]=np.nan #create empty column
df["price"]=np.nan
df["status"]=np.nan
for i in range (0,len(df['data'])):
df['result'].iloc[i]=json.loads(df['data'].iloc[i])[str(df['reg'].iloc[i])]['#result']
df['price'].iloc[i]=json.loads(df['data'].iloc[i])[str(df['reg'].iloc[i])]['price']
df['status'].iloc[i]=json.loads(df['data'].iloc[i])[str(df['reg'].iloc[i])]['status']
print(df)
Run Code Online (Sandbox Code Playgroud)
所以我得到了带有新列(结果、价格和状态)的数据框,如下所示:
该代码给了我我想要的输出。然而,由于我使用“for 循环”,因此运行大数据框需要很长时间。我认为必须有一种更聪明的方法来做到这一点。我知道如果第一级密钥是恒定的,则有不同的方法可以做到。任何人都可以有更好的想法在 panda 框架中提取这种类型的 json 字符串。干杯!
我需要按升序/降序对矩阵的行进行排序.在matlab中,我可以很容易地做到如下:
A=[3 1 0;2 1 9;0 4 8]
sortrows(A,1)
Run Code Online (Sandbox Code Playgroud)
所以它会对列"1"中的行进行排序,其他列将相应地跟随.但我需要在FORTRAN中这样做.而且我对FORTRAN不太熟悉.谁能告诉我如何在FORTRAN中做到这一点.谢谢.
我正在使用 python 代码,其中一个方程的 sqrt 根为负值。我用cmath.sqrt它来解决。我从该方程得到的所有答案都以虚数/复数显示(例如xxxxxx j)。我不想得到那个虚数/复数,因为我随后使用的代码无法读取这些虚数/复数。那么,如何避免得不到虚数呢?或者换句话说,我怎样才能将这些虚数转换为实数?或者我怎样才能删除那些“j”。谢谢。
您好我正在尝试将代码从matlab转换为perl脚本.我的matlab代码如下:
for i=1:n
if
statement
if
statement
if
statement
else
statement
for j=1:1000
if
statement
end
end
if
statement
else
statement
end
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
然后我翻译成perl如下:
for ($i=1;$i<=n;$i++){
if (){
statement
if {
statement
if {
statement
else {
statement
}
for ($j=1;$j<=1000;$j++){
if {
statement
}
}
if {
statement
}
else {
statement
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是有语法错误所以我改成如下:
for ($i=1;$i<=n;$i++){
if (){
statement
}
if {
statement
}
if {
statement
}
else {
statement
} …Run Code Online (Sandbox Code Playgroud)