使用 f2py 将 numpy 字符串格式数组传递给 fortran

2023-12-08

我的目标是从 fortran 中的 python numpy 数组打印第二个字符串,但我只打印第一个字符,而且它也不一定是正确的字符串。

谁能告诉我将完整字符串数组传递给 Fortran 的正确方法是什么?

代码如下:

测试py

import numpy as np
import testa4

strvar = np.asarray(['aa','bb','cc'], dtype = np.dtype('a2'))
testa4.testa4(strvar)

特斯塔4.f90

subroutine testa4(strvar)
implicit none

character(len=2), intent(in) :: strvar(3)
!character*2 does not work here - why?

print *, strvar(2)

end subroutine testa4

编译为

f2py -c -m testa4 testa4.f90

上面代码的输出

c

所需输出

bb

我不知道如何使用f2py。但这可以用ctypes。您将获得一个字符数组,但您可以非常轻松地将其转换为字符串。

subroutine testa4(strvar) bind(C, name='testa4')
  use iso_c_binding
  implicit none

  character(len=1,kind=c_char), intent(in) :: strvar(2,3)

  print *, strvar(:,2)

end subroutine testa4

编译:gfortran -shared -fPIC testa4.f90 -o testa4.so

import numpy as np
import ctypes

testa4 = ctypes.CDLL("./testa4.so")

strvar = np.asarray(['aa','bb','cc'], dtype = np.dtype('a2'))
strvar_p = ctypes.c_void_p(strvar.ctypes.data)

testa4.testa4(strvar_p)

run:

> python testpy.f90 
 bb
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 f2py 将 numpy 字符串格式数组传递给 fortran 的相关文章

  • 检查 Python 中的可迭代对象中的所有元素的谓词是否计算为 true

    我很确定有一个常见的习语 但我无法通过谷歌搜索找到它 这是我想做的 用Java Applies the predicate to all elements of the iterable and returns true if all ev
  • Python 2.7 中的断言对我来说不起作用示例assertIn

    我的 Mac 上安装了 python 2 7 通过在终端中运行 python v 进行验证 当我尝试使用任何新的 2 7 断言方法时 我收到 AtributeError 我看过http docs python org 2 library u
  • Python 中的流式传输管道

    我正在尝试使用 Python 将 vmstat 的输出转换为 CSV 文件 因此我使用类似的方法转换为 CSV 并将日期和时间添加为列 vmstat 5 python myscript py gt gt vmstat log 我遇到的问题是
  • Pandas:如果单元格包含特定文本则删除行

    pandas 中的这段代码不起作用 如果该列包含提供的任何文本 数字 我希望它删除该行 目前 我只能在单元格与我的代码中传递的确切文本匹配时才能使其工作 因为它只删除显示 Fin 的单元格不是金融或金融 df2 df df Team Fin
  • 结构差异 sudo() run('sudo 命令')

    我想知道函数之间有什么区别sudo 和函数run sudo u user smth 文档上有 sudo 在所有运行方式上都是相同的 除了它总是换行 调用 sudo 程序中的给定命令以提供超级用户 特权 但有几次 sudo cmd 提示我输入
  • 使用Python计算目录的大小?

    在我重新发明这个特殊的轮子之前 有没有人有一个很好的例程来使用 Python 计算目录的大小 如果例程能够很好地以 Mb Gb 等格式格式化大小 那就太好了 这会遍历所有子目录 总结文件大小 import os def get size s
  • Geodjango距离查询未检索到正确的结果

    我正在尝试根据地理位置的接近程度来检索一些帖子 正如您在代码中看到的 我正在使用 GeoDjango 并且代码在视图中执行 问题是距离过滤器似乎被完全忽略了 当我检查查询集上的距离时 我得到了预期距离 1m 和 18km 但 18km 的帖
  • 用 python 编写的数学语法检查器

    我需要的只是使用 python 检查字符串是否是有效的数学表达式 为了简单起见 假设我只需要 运算符 也作为一元 带有数字和嵌套括号 为了完整性 我还添加了简单的变量名称 所以我可以这样测试 test 3 2 1 valid test 3
  • 将文本拆分为数组,同时保留 Swift 中的标点符号

    我想将文本拆分为一个数组 保持标点符号与其余单词分隔开 因此字符串如下 Hello I am Albert Einstein 应该变成这样的数组 Hello I am Albert Einstein 我尝试过sting components
  • Python:IndexError:修改代码后列表索引超出范围

    我的代码应该提供以下格式的输出 我尝试修改代码 但我破坏了它 import pandas as pd from bs4 import BeautifulSoup as bs from selenium import webdriver im
  • 返回表示每组内最大值的索引的一系列数字位置

    考虑一下这个系列 np random seed 3 1415 s pd Series np random rand 100 pd MultiIndex from product list ABDCE list abcde One Two T
  • Anaconda 无法导入 ssl 但 Python 可以

    Anaconda 3 Jupyter笔记本无法导入ssl 但使用Atom终端导入ssl没有问题 我尝试在 Jupyter 笔记本中导入 ssl 但出现以下错误 C ProgramData Anaconda3 lib ssl py in
  • 从多维无穷大数组中删除数组元素

    我想删除一个特定元素 例如 我想删除元素id 76在下面的数组中 而且 数组可以无限地组合在一起 这里的问题是我无法刷新页面 因为我使用 Vue js 进行即时操作 如果我能做到这一点 我的下一个问题可能是如何在我现在想要的地方添加一个元素
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho
  • Python SSL X509:KEY_VALUES_MISMATCH

    Python HTTPS server from http server import HTTPServer SimpleHTTPRequestHandler import ssl https stackoverflow com a 408
  • 在 Django 查询中使用 .extra(select={...}) 引入的值上使用 .aggregate() ?

    我正在尝试计算玩家每周玩游戏的次数 如下所示 player game objects extra select week WEEK games game date aggregate count Count week 但姜戈抱怨说 Fiel
  • 如何根据第一列创建新列,同时考虑Python Pandas中字母和列表的大小? [复制]

    这个问题在这里已经有答案了 我在 Python Pandas 中有 DataFrame 如下所示 col1 John Simon prd agc Ann White BeN and Ann bad list Ben Wayne 我需要这样做
  • TKinter 中的禁用/启用按钮

    我正在尝试制作一个像开关一样的按钮 所以如果我单击禁用按钮 它将禁用 按钮 有效 如果我再次按下它 它将再次启用它 我尝试了 if else 之类的东西 但没有成功 这是一个例子 from tkinter import fenster Tk
  • 多个对象以某种方式相互干扰[原始版本]

    我有一个神经网络 NN 当应用于单个数据集时 它可以完美地工作 但是 如果我想在一组数据上运行神经网络 然后创建一个新的神经网络实例以在不同的数据集 甚至再次同一组数据 上运行 那么新实例将产生完全错误的预测 例如 对 XOR 模式进行训练
  • 查找总和为给定数字的值组合的函数

    这个帖子查找提供的 Sum 值的组合 https stackoverflow com a 20194023 1561176呈现函数subsets with sum 它在数组中查找总和等于给定值的值的组合 但由于这个帖子已经有6年多了 我发这

随机推荐

  • Apache Spark - foreach 与 foreachPartition 何时使用 什么?

    我想知道是否foreachPartition与foreach方法考虑到我正在流过的情况RDD为了对累加器变量执行一些求和 foreach and foreachPartitions是行动 foreach 函数 单位 用于调用具有副作用的操作
  • Objective C - iOS - 在 webViewDidFinishLoad 执行过程中调用 Dealloc

    我在 ios 中遇到内存管理问题 问题是 当我将一个具有 webView 的 viewController 推送到导航堆栈时 当我在加载 webview 之前单击返回时 我得到了 exec bad access 在 A 类 中 我创建一个新
  • 获取资源文件夹中的文件列表 - iOS

    假设我的 iPhone 应用程序的 资源 文件夹中有一个名为 文档 的文件夹 有没有一种方法可以在运行时获取该文件夹中包含的所有文件的数组或某种类型的列表 所以 在代码中 它看起来像 NSMutableArray myFiles get a
  • 如何结合 SELECT DISTINCT 和 SUM()

    我在 Oracle 中有一个如下所示的表 Products Product ID Product NME Product SUP Quantity 1 Apple USA 100 2 Fish Japan 50 3 Wine Italy 1
  • 如何改变 django 模型中 unique true 的行为?

    这里我没有从数据库中删除模型对象 我只是改变is deleted删除时状态为 True 但在这样做的同时unique True对于已删除的对象给出错误 那么我该如何处理这个问题 我想排除is deleted True来自唯一 True 的对
  • TStringGrid - OnMouseUp 未被调用!

    我在 Delphi 7 中的 TStringGrid 有一个奇怪的行为 如果弹出菜单与网格关联 Delphi 不会调用 OnMouseUp 事件 基本上 当按下人民币时 菜单的弹出会以某种方式取消 延迟 OnMouseUp 实际上 为了 1
  • 如何执行存储在 varchar 变量中的数学表达式

    我的数据库函数中有一个变量 LocalVariable 2 3 100 我想通过执行另一个变量中的表达式来获得结果 有人可以建议如何执行该表达式吗 另外 我想在数据库函数中 而不是在存储过程中 执行此操作 我期望的结果是 600 DECLA
  • 为什么我的 int[] 数组循环越界?

    Warning 我对 Java 和一般编程非常陌生 我会尽量说得清楚 我正在尝试取一个简单的整数 inputnumber 将其转换为字符串 temp 创建一个新的 int 数组 numberarray 并从最后一位数字开始循环遍历这个 in
  • Gradle 3.0.0 alpha 变体输出问题

    我想要有一个不一样的versionCode for debug构建类型而不是其中的类型release构建类型 这曾经通过在 Gradle Android 插件 v2 3 2 Gradle v3 3 中使用下面的配置来工作 但现在在 v3 0
  • SQL 到实体框架计数分组

    我需要翻译这个SQL声明给一个Linq Entity询问 SELECT name count name FROM people GROUP by name 查询语法 var query from p in context People gr
  • Karate API 测试 - 在同一功能文件中的不同场景中重用变量

    Karate 是否支持这样的功能 您可以在场景中定义变量并在同一功能文件的其他场景中重用它 我尝试做同样的事情但得到一个错误 在同一特征文件中重用变量的最佳方法是什么 Scenario Get the request Id url base
  • 如何获取插入计算机的可移动驱动器的列表?

    我想获取插入计算机的可移动驱动程序的列表 我怎样才能做到这一点pywin32Python 中的模块 注意 重要的是我能够将可移动驱动器与固定驱动器分开 该算法很简单 Call MS Docs GetGetLogicalDriveString
  • WP8 SDK 导入服务参考无法进行基于任务的操作

    到目前为止 在 VS2012 中使用 生成基于任务的操作 导入服务引用似乎不起作用 它变灰了 对 WPF 新项目的测试运行良好 我可以选择基于任务的操作或异步操作 有没有一种简单的方法可以将异步调用包装在任务中 有没有一种简单的方法可以将异
  • 如何更改 Google 静态地图中的视角?

    是否可以更改 google 静态地图中的视角 就像在 Google 地图 API 中如何更改一样 这里检查 setTilt 函数 https developers google com maps documentation javascri
  • 即使应用程序终止,iOS 也会更新位置

    即使应用程序终止 我也尝试更新用户位置 我向我的 plist 添加了地图和后台模式 gt 位置更新 并设置了一个本地通知 该通知将在位置更新时触发 但它从未被解雇 我有这个AppDelegate h interface AppDelegat
  • 使用 DeviceLifecycleEvents 源的 IoT 中心消息路由不起作用

    我已经在使用 IoT 中心并配置了消息路由来路由TwinChangeEvents到事件中心 一个 Azure 函数EventHubTrigger处理消息 这工作得很好 现在 我想配置消息路由来路由DeviceLifecycleEvents到
  • Bootstrap 抛出未捕获错误:Bootstrap 的 JavaScript 需要 jQuery [关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我正在尝试使用 Bootstrap 为程序制作界面 我将 jQuery 1 11 0 添加到标记并认为就是这样 但是当我在浏览器中启动网页时 jQuery 报告错误 Uncaught Er
  • $( "

    选择器有什么作用 div div 这段代码中的语法是什么意思 我见过像这样的选择器div or someId但我很困惑什么 div div means function log message div div text message pr
  • Cakephp 覆盖 HtmlHelper::link

    我想设置 HtmlHelper link 方法 以便默认选项数组具有 escape false 如何在不改变核心类的情况下实现这一目标 OBS 我已经清理了表单输入 所以我想这不会有问题 提前致谢 蛋糕2 1 5 我刚刚实现了这个 我想指出
  • 使用 f2py 将 numpy 字符串格式数组传递给 fortran

    我的目标是从 fortran 中的 python numpy 数组打印第二个字符串 但我只打印第一个字符 而且它也不一定是正确的字符串 谁能告诉我将完整字符串数组传递给 Fortran 的正确方法是什么 代码如下 测试py import n