Python 在将数字添加到该数组的特定数据后,如何获取该数组? 将numpy导入为np 导入xlrd 导入xlwt wb=xlrd.open_工作簿('Scatter plot.xlsx') 工作簿=xlwt.workbook() 工作表=工作簿。添加工作表(“工作表1”) sh1=wb.sheet\u by\u name('T180') sh2=wb.图纸按名称(“T181”) x=np.array([sh1.col\u值(1,start\u rowx=51,end\u rowx=315)]) y=np.array([sh1.col\u值(2,start\u rowx=51,end\u rowx=315)]) x1=np.array([sh2.col\u值(1,start\u rowx=50,end\u rowx=298)]) y1=np.array([sh2.col\u值(2,start\u rowx=50,end\u rowx=298)]) 条件=[(x1=0)] 条件1=[(y1=0)] x_素数=x1[条件]-150 y_素数=y[condition1]+20 plt.绘图(x,y,“ro”,label=“T180”) plt.绘图(x_素数,y_素数,“gs”) plt.show()

Python 在将数字添加到该数组的特定数据后,如何获取该数组? 将numpy导入为np 导入xlrd 导入xlwt wb=xlrd.open_工作簿('Scatter plot.xlsx') 工作簿=xlwt.workbook() 工作表=工作簿。添加工作表(“工作表1”) sh1=wb.sheet\u by\u name('T180') sh2=wb.图纸按名称(“T181”) x=np.array([sh1.col\u值(1,start\u rowx=51,end\u rowx=315)]) y=np.array([sh1.col\u值(2,start\u rowx=51,end\u rowx=315)]) x1=np.array([sh2.col\u值(1,start\u rowx=50,end\u rowx=298)]) y1=np.array([sh2.col\u值(2,start\u rowx=50,end\u rowx=298)]) 条件=[(x1=0)] 条件1=[(y1=0)] x_素数=x1[条件]-150 y_素数=y[condition1]+20 plt.绘图(x,y,“ro”,label=“T180”) plt.绘图(x_素数,y_素数,“gs”) plt.show(),python,arrays,subtraction,Python,Arrays,Subtraction,我想从x1数组小于1000的值中减去150,最后我需要所有值(减去+剩余值)。但是通过这个代码,我只得到了小于1000的值。但我需要两者(小于1000+大于1000)。但大于1000的值将保持不变。我怎样才能做到这一点。正如你们所看到的,x1数组中有248个元素,所以在减法之后,我需要248个元素作为x_素数。和y一样。提前感谢您的友好合作 您可以使用来修改逻辑表达式所在的数组。对于数组上的复杂逻辑表达式,有组合布尔数组的 例如: 以下是一个解决方案: x1 Out[151]: array([2

我想从x1数组小于1000的值中减去150,最后我需要所有值(减去+剩余值)。但是通过这个代码,我只得到了小于1000的值。但我需要两者(小于1000+大于1000)。但大于1000的值将保持不变。我怎样才能做到这一点。正如你们所看到的,x1数组中有248个元素,所以在减法之后,我需要248个元素作为x_素数。和y一样。提前感谢您的友好合作

您可以使用来修改逻辑表达式所在的数组。对于数组上的复杂逻辑表达式,有组合布尔数组的

例如:


以下是一个解决方案:

x1
Out[151]: array([2285, 2243, 1716,  632, 2489, 2837, 2324, 2154,  562, 2508])

x_prime
Out[152]: array([2285, 2243, 1716,  482, 2489, 2837, 2324, 2154,  412, 2508])
导入matplotlib
将matplotlib.pyplot作为plt导入
作为pd进口熊猫
matplotlib.style.use('ggplot')
fn=r'/path/to/ExcelFile.xlsx'
sheetname='T181'
df=pd.read_excel(fn,sheetname=sheetname,skiprows=47,parse_cols='B:C').dropna(how='any')
#自定义X值

df.ix[df.eval('0能否将您的Excel文件上载到某个地方并在此处发布链接?这将有助于我们编写和测试解决方案…我无法上载它,我找不到任何方法来上载此文件。我能做什么?感谢您的关心。@MaxU@MaxU“ValueError:对象对于所需数组来说太深”它为以下代码显示了这种错误:z=np.place(x1,np.logical_)和(x1>1,x1@QuaziNizam我认为错误是因为你的
x1
是多维的。当你构造
x
y
x1
y1
时,你有
[]
列值
表达式周围加上括号,这将生成一个包含一个切片的列表,而您只需要该切片。请尝试删除这些括号。谢谢。它现在可以工作了。如果我想要更多条件,例如25000的-150,x1的>3000添加30(与y1相同)我能做什么?@QuaziNizam使用multiple
place
statementsorry我不懂。请你给我看一下代码作为例子。谢谢你的帮助。@eistaaThanks,但它对x1和x_素数显示了相同的结果。@Sayali Sonawaneyou会得到相同的结果,如果你不先将其转换为list的话。这就是为什么,我转换了首先将其转换为列表。然后执行操作并转换回数组。谢谢兄弟。它显示fn中的错误。怎么办@MaxU@QuaziNizam,对不起,
fn
-是文件名(包括路径)-它丢失了。我已经更正了我的答案…谢谢。还有一个问题,我想要这样的数字,但根据你的代码,我发现如下:如何解决?@MaxUThanks。它正在工作。如果我想要更多的条件,比如2500的-150,x1的>3000(与y1相同)加30,我能做什么@MaxU@QuaziNizam,可以执行类似于
df.ix[df.eval('0
A = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
np.place(A, np.logical_and(A > 1, A <= 8), A-10)
array([ 1, -9, -8, -7, -6, -5, -4, -3,  9, 10])
import numpy as np 
#random initialization
x1=np.random.randint(1,high=3000, size=10)

x_prime=x1.tolist()

for i in range(len(x_prime)):
    if(x_prime[i]<=1000 and x_prime[i]>=0): 
        x_prime[i]=x_prime[i]-150

x_prime=np.asarray(x_prime)  
x1
Out[151]: array([2285, 2243, 1716,  632, 2489, 2837, 2324, 2154,  562, 2508])

x_prime
Out[152]: array([2285, 2243, 1716,  482, 2489, 2837, 2324, 2154,  412, 2508])
import matplotlib
import matplotlib.pyplot as plt
import pandas as pd

matplotlib.style.use('ggplot')

fn = r'/path/to/ExcelFile.xlsx'
sheetname = 'T181'
df = pd.read_excel(fn, sheetname=sheetname, skiprows=47, parse_cols='B:C').dropna(how='any')

# customize X-values
df.ix[df.eval('0 <= GrvX <= 1000'), 'GrvX'] -= 150
df.ix[df.eval('2500 < GrvX <= 3000'), 'GrvX'] += 50
df.ix[df.eval('3000 < GrvX'), 'GrvX'] += 30

# customize Y-values
df.ix[df.eval('0 <= GrvY <= 1000'), 'GrvX'] += 20

df.plot.scatter(x='GrvX', y='GrvY', marker='s', s=30, label=sheetname, figsize=(14,12))

plt.show()