我想检查NumPyArray中是否有一个集合中的值,如果是这样,则设置该数组中的区域= 1.如果没有设置keepRaster = 2.
numpyArray = #some imported array
repeatSet= ([3, 5, 6, 8])
confusedRaster = numpyArray[numpy.where(numpyArray in repeatSet)]= 1
Run Code Online (Sandbox Code Playgroud)
产量:
<type 'exceptions.TypeError'>: unhashable type: 'numpy.ndarray'
Run Code Online (Sandbox Code Playgroud)
有没有办法循环它?
for numpyArray
if numpyArray in repeatSet
confusedRaster = 1
else
keepRaster = 2
Run Code Online (Sandbox Code Playgroud)
澄清并要求进一步帮助:
我想要得到的,现在正在做的是将光栅输入放入数组中.我需要读取二维数组中的值,并根据这些值创建另一个数组.如果数组值在一个集合中,那么该值将为1.如果它不在一个集合中,那么该值将从另一个输入派生,但我现在说77.这就是我目前正在使用的.我的测试输入有大约1500行和3500列.它总是在第350行附近冻结.
for rowd in range(0, width):
for cold in range (0, height):
if numpyarray.item(rowd,cold) in repeatSet:
confusedArray[rowd][cold] = 1
else:
if numpyarray.item(rowd,cold) == 0:
confusedArray[rowd][cold] = 0
else:
confusedArray[rowd][cold] = 2
Run Code Online (Sandbox Code Playgroud) 这是我第一次使用netCDF,我正试着用它来解决问题.
我有多个版本3 netcdf文件(NOAA NARR air.2m每日平均一年).每个文件跨越1979年至2012年的一年.它们是349 x 277网格,分辨率约为32千米.数据是从这里下载的.
维度是时间(自1800年1月1日以来的小时数),我感兴趣的变量是空气.我需要计算温度<0的累计天数.例如
Day 1 = +4 degrees, accumulated days = 0
Day 2 = -1 degrees, accumulated days = 1
Day 3 = -2 degrees, accumulated days = 2
Day 4 = -4 degrees, accumulated days = 3
Day 5 = +2 degrees, accumulated days = 0
Day 6 = -3 degrees, accumulated days = 1
Run Code Online (Sandbox Code Playgroud)
我需要将这些数据存储在一个新的netcdf文件中.我熟悉Python并且熟悉R.什么是循环每天的最佳方法,检查前一天的值,并在此基础上,将值输出到具有完全相同的维度和变量的新netcdf文件...或者可能只是使用我正在寻找的输出将另一个变量添加到原始netcdf文件中.
最好将所有文件分开或合并吗?我将它们与ncrcat结合使用它工作正常,但文件是2.3gb.
感谢您的投入.
我目前在python中取得的进展:
import numpy
import netCDF4
#Change my working DIR
f = netCDF4.Dataset('air7912.nc', 'r') …Run Code Online (Sandbox Code Playgroud) stackoverflow上已有很多好的资源,但我仍然遇到问题.我访问过这些来源:
我正试图访问http://www.latax.state.la.us/Menu_ParishTaxRolls/TaxRolls.aspx并选择一个教区.我相信这会强制发布一个帖子,并允许我选择一年,再次发布,并允许更多选择.我按照上述来源以不同的方式编写了我的脚本,并且未能成功提交网站以允许我输入一年.
我目前的代码
import urllib
from bs4 import BeautifulSoup
import mechanize
headers = [
('Accept','text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'),
('Origin', 'http://www.indiapost.gov.in'),
('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17'),
('Content-Type', 'application/x-www-form-urlencoded'),
('Referer', 'http://www.latax.state.la.us/Menu_ParishTaxRolls/TaxRolls.aspx'),
('Accept-Encoding', 'gzip,deflate,sdch'),
('Accept-Language', 'en-US,en;q=0.8'),
]
br = mechanize.Browser()
br.addheaders = headers
url = 'http://www.latax.state.la.us/Menu_ParishTaxRolls/TaxRolls.aspx'
response = br.open(url)
# first HTTP request without form data
soup = BeautifulSoup(response)
# parse and retrieve two vital form values
viewstate = soup.findAll("input", {"type": "hidden", "name": "__VIEWSTATE"}) …Run Code Online (Sandbox Code Playgroud) 我在SQL中有两个表。第一个是项目多边形。第二个是我要基于最大空间交集应用于多边形的任何边界。
例如,如果项目1重叠2个状态,我想返回项目1所在区域最多的状态名称。
我已经完成了下面的查询。PrjID是项目表,STATE是状态表。我想根据每个PrjID记录和STATE记录之间的最大交集返回statename。
SELECT *
FROM
(SELECT a.PROJECT_DELIVERY_ID, b.statename, a.Shape.STIntersection(b.Shape).STArea() AS Area
FROM PrjID a
INNER JOIN STATE b
ON a.Shape.STIntersects(b.Shape) = 1) as c
INNER JOIN
(SELECT a.PROJECT_DELIVERY_ID, MAX(a.Shape.STIntersection(b.Shape).STArea()) AS Area
FROM PrjID a
INNER JOIN STATE b
ON a.Shape.STIntersects(b.Shape) = 1
GROUP BY a.PROJECT_DELIVERY_ID) as d
ON c.PROJECT_DELIVERY_ID = d.PROJECT_DELIVERY_ID
AND c.Area = d.Area
Run Code Online (Sandbox Code Playgroud)
我感觉我在运行相同的查询两次并将它们加入。有没有更有效的方法可以做到这一点?
谢谢
我主要关注这个项目,但正在做像素级分类。我有 8 个班级和 9 个乐队图像。我的图像被网格化为 9x128x128。我的损失并没有减少,训练准确性也没有太大波动。我猜我的模型有问题。非常感谢任何建议!我使用随机森林获得了至少 91% 的准确率。
我的班级非常不平衡,因此我尝试根据训练数据中的班级比例调整训练权重。
# get model
learning_rate = 0.0001
model = unet.UNetSmall(8)
optimizer = optim.Adam(model.parameters(), lr=learning_rate)
# set up weights based on data proportion
weights = np.array([0.79594768, 0.07181202, 0.02347426, 0.0042031, 0.00366211, 0.00764327, 0.07003923, 0.02321833])
weights = (1 - weights)/7
print('Weights of training data based on proportion of the training labels. Not compted here')
print(weights)
print(sum(weights))
criterion = nn.CrossEntropyLoss(weight = weight)
lr_scheduler = optim.lr_scheduler.StepLR(optimizer, step_size=5, gamma=0.1)
Run Code Online (Sandbox Code Playgroud)
基于训练标签比例的训练数据权重。此处未计算 [0.02915033 0.13259828 0.13950368 0.1422567 0.14233398 0.14176525 …
我在Visual Studio Express 2012中使用C#作为WPF应用程序.我按照此处的教程进行操作.我创建了一个testDb.mdf基于服务的本地数据库.我打开应用程序,输入文本,点击添加,数据添加到数据库.我只知道这一点,因为我将一个字段设置为主键并且是唯一的.如果我再次尝试添加相同的东西,我会收到错误消息,说它已经存在.
当我退出应用程序时,数据库中没有任何显示.我输入的数据消失了.为什么数据不是永久性的?
这是我用于单击按钮的代码:
private void Add_Click(object sender, RoutedEventArgs e)
{
SqlConnection cn = new SqlConnection(global::testdb.Properties.Settings.Default.testDBConnectionString);
try
{
string sql = "INSERT INTO Test (TestInsert) Values('" + txtName.Text + "')";
SqlCommand cmd = new SqlCommand(sql, cn);
cn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("Added new record", "Message", MessageBoxButton.OK);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message,"Error", MessageBoxButton.OK);
}
finally
{
cn.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
连接字符串:
<connectionStrings>
<add name="testdb.Properties.Settings.testDBConnectionString"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\testDB.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)