从一个函数返回不同维度的数组;在 F# 中可以吗?

2023-12-05

我正在尝试将一些 Python 转换为 F#,特别是numpy.random.randn.

该函数采用可变数量的 int 参数,并根据参数的数量返回不同维度的数组。

我相信这是不可能的,因为不能有一个返回不同类型的函数(int[], int[][], int[][][]等),除非他们是受歧视工会的一部分,但希望在采取解决方法之前确定。

健全性检查:

member self.differntarrays ([<ParamArray>] dimensions: Object[]) =
    match dimensions with
    | [| dim1 |] ->      
         [| 
            1 
         |]
    | [| dim1; dim2 |] -> 
        [|
           [| 2 |], 
           [| 3 |] 
        |]
    | _ -> failwith "error"

导致错误:

This expression was expected to have type  
    int    
but here has type  
    'a * 'b 

expression存在 :[| 2 |], [| 3 |]
int指的是1中的[| 1 |]
即类型1与 的类型不同[| 2 |], [| 3 |]

TLDR;

numpy.random.randn

numpy.random.randn(d0, d1, ..., dn)

从“标准正态”分布返回一个(或多个)样本。

如果提供正数、int_like 或 int-convertible 参数,则 randn 生成形状为 (d0, d1, ..., dn) 的数组,并随机填充 从单变量“正态”(高斯)分布中采样的浮点数 均值 0 和方差 1(如果任何 d_i 是浮点数,则它们首先 通过截断转换为整数)。随机采样的单个浮点数 如果未提供参数,则从分布中返回。

交互式 python 会话的示例:

np.random.randn(1)  - array([-0.28613356])
np.random.randn(2)  - array([-1.7390449 ,  1.03585894]) 
np.random.randn(1,1)- array([[ 0.04090027]])
np.random.randn(2,3)- array([[-0.16891324,  1.05519898, 0.91673992],  
                             [ 0.86297031,  0.68029926, -1.0323683 ]])

代码是为了神经网络和深度学习并且由于出于性能原因这些值需要可变,因此不能选择使用不可变列表。


你是对的 - 浮点数数组float[]是与浮点数数组的数组不同的类型
float[][]或二维浮点数组float[,]因此你不能编写一个根据输入参数返回其中一个的函数。

如果你想做类似 Python 的事情rand,你可以编写一个重载方法:

type Random() = 
  static let rnd = System.Random()
  static member Rand(n) = [| for i in 1 .. n -> rnd.NextDouble() |]
  static member Rand(n1, n2) = [| for i in 1 .. n1 -> Random.Rand(n2) |]
  static member Rand(n1, n2, n3) = [| for i in 1 .. n1 -> Random.Rand(n2, n3) |]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从一个函数返回不同维度的数组;在 F# 中可以吗? 的相关文章

  • 静态数组VS。 C++11 中的动态数组

    我知道这是一个非常古老的争论 全世界已经讨论过很多次了 但我目前很难决定在特定情况下应该使用静态数组和动态数组之间的哪种方法而不是另一种方法 实际上 我不会使用 C 11 我会使用静态数组 但我现在很困惑 因为两者可能有相同的好处 第一个解
  • 如何缩短 PHP if 语句?

    我有一个 if 语句 我需要将单个字符串与许多不同的选项进行比较 我在下面发布的代码非常清楚地表明了我的意思 我知道有两种方法可以做到这一点 但另一种甚至更长 那么 是否有任何函数可以以更短的方式实现类似的功能 我的要求可能看起来很愚蠢 但
  • 如何对 PHP 数组中的值进行排序/过滤?

    我需要 foreach 这个数组的值 My CODE 该代码的结果 Array 0 gt Array 0 gt Age Name 1 gt 22 Yrs Value 2 gt Ethnicity Name 3 gt Caucasian Va
  • 无法从 XML 获取数组字符串资源

    我的 XML 文件中有一个值列表 我想根据微调器选择来选择这些值 由于某种原因 使用数组字符串作为微调器可以正常工作 这些值将填充到微调器中 无论出于何种原因 我无法获取第二个数组的值来挽救我的生命 它们位于同一个文件中 没有我能找到的错误
  • Javascript - 使数组索引 toLowerCase() 不起作用

    我试图将所有数组索引设置为小写字符串 但它不起作用 我在这里查看了其他答案并尝试了他们的解决方案 例如使用toString 添加之前toLowerCase但它不起作用 这很奇怪 我创建了一个问题的jsfiddlehere https jsf
  • PHP - 递归搜索数组中的键和子键,成功时返回键['subkey]

    因此 我编写了一个函数 该函数可以在数组中深入搜索两个级别以查找键和子键对 基本上是在寻找key subkey 如果找到 则返回key subkey 我正在寻找一种以真正递归的方式执行此操作的方法 并根据需要进行尽可能多的深度搜索 直到到达
  • 按元素聚合数组

    Spark scala 相当新 我想知道是否有一种简单的方法以按列方式聚合 Array Double 这是一个例子 c1 c2 c3 1 1 1 0 1 0 3 4 1 2 1 0 0 0 4 3 2 1 0 0 0 0 0 0 2 3 1
  • 如何初始化一个大多数值相同但某些值不同的静态数组?

    我想使用静态或常量数组 但使用除 T N 句法 我需要定义特定元素 但所有其他值都可以默认为 0 或其他值 在 C 中 您可以执行以下操作 byte ARRAY 256 0x1F 1 lt lt 4 Or even simply just
  • java - IBM-IEEE 双精度浮点字节转换

    我需要在 Java 中对字节数组进行 IBM IEEE 浮点转换 我能够使用成功地进行单精度浮点字节的转换http www thecodingforums com threads c code for converting ibm 370
  • 为什么使用数组索引循环数组比指针访问慢?

    我正在读Kochan的书 Programming in C 在第 14 页的 指针和数组 部分中 264 他说 一般来说 索引数组的过程比执行索引过程花费更多的时间 访问指针内容的过程 其实这也是主要原因之一 为什么使用指针来访问数组的元素
  • 过滤数组以获取唯一字段值

    我知道有很多方法可以过滤数组中的唯一值 但是如何过滤数组中具有给定字段的唯一值的对象呢 例如我有 obj1 obj2 obj3 其中每个对象具有以下形式 firstName lastName 如何过滤数组以最终得到一个最终数组 其中所有对象
  • 为什么 Eclipse 有时会对 JavaScript 中的数组数组发出警告?

    在 Eclipse 中 以下 JavaScript 行 var a1 1 2 3 4 生成警告 Type mismatch cannot convert from Number to any Type mismatch cannot con
  • 数组初始化编译时间 - Constexpr 序列

    我正在读书this https stackoverflow com questions 45938798 for loop with variable step size c 45939130关于SO的问题 这个问题本身并不是那么有趣 但我
  • 在 Numpy 中切片后确定结果数组的形状

    我很难理解在 numpy 中切片后如何确定结果数组的形状 例如 我使用以下简单代码 import numpy as np array np arange 27 reshape 3 3 3 slice1 array 1 2 1 slice2
  • 使用 OpenCV 描述符与 findFundamentalMat 匹配

    我之前发布了有关同一程序的问题 但没有收到答案 我已经纠正了当时遇到的问题 但又面临新的问题 基本上 我使用未校准的方法自动校正立体图像对的旋转和平移 我使用 SURF 等特征检测算法来查找两个图像 左右立体图像对 中的点 然后再次使用 S
  • 在 Swift 中检查一个数组是否包含另一个数组的所有元素

    我想为数组编写一个扩展来检查一个数组是否包含另一个数组的所有元素 在我的用例中它是字符串对象 但我一直得到 Cannot convert value of type T Generator Element to expected argum
  • 如何为 Azure Function 启用“始终开启”功能?

    我有一个具有 3 个功能的功能应用程序 其中一个功能每 2 分钟定时器触发一次 我观察到 过了一会儿 该功能停止被触发 但当我进入门户时又重新启动 据我了解 原因是默认情况下 始终开启 处于关闭状态 但是 当我进入应用程序设置 常规设置时
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE

随机推荐

  • 如何在Python中找到pow(a,b,c)的逆序?

    pow a b c python中的运算符返回 a b c 如果我的价值观是b c 以及该操作的结果 res pow a b c 我怎样才能找到值a Despite the statements in the comments this i
  • 如何使用jquery查找并检查树中的所有动态子复选框?

    我已动态地将复选框添加到所有元素 并成功添加了选择所有复选框的功能 但无法选择树结构中的父子复选框 这意味着如果我选择 亚洲 它应该选择所有 东亚 和 南亚 如果我选择东亚 它应该选择所有国家 反之亦然 var json Asia regi
  • 使用 Google Cloud Storage 从 Firebase 存储中删除文件夹

    我想删除文件夹 test 及其中的所有内容 我可以使用以下代码在终端成功删除 FirebaseStorage 中的文件夹及其所有内容 子文件夹 gsutil rm r gs bucketname appspot com test 然而 当我
  • 表格和屏幕阅读器

    我似乎无法让屏幕阅读器阅读简单的表格 我有以下 HTML table alt Account Information tr th Account Number th td 1111 1111 1111 td td nbsp nbsp td
  • 如何删除div中某个div之后的所有元素

    所以我有一个在其底部绘制动态元素的 div 我想隐藏这些元素 无论它们的 ID 使用 javaScript jQuery 是什么 基本上我的 HTML 看起来像这样 div class right panel div class info
  • Ajax:将整数数组发布到 Django

    我在用着数据表 我想让用户选择多行并删除它们 到目前为止 我已经让它工作了 所以它使用下面的代码删除了选择中的第一行 阿贾克斯代码 Add a click handler for the delete row delete click fu
  • Eclipse 中 Tomcat 上 Jersey 的基本完整配置

    我是 Jersey 的新手 正在尝试使用 Tomcat 和 eclipse 建立一个基本的 web 应用程序 我看过许多教程和示例 但它们彼此不同 或者省略了部分过程 例如使用 Spring 使用 web xml 文件 在 Tomcat 上
  • 如何使用 jQuery ajax 获取另一个页面上的 div 的 html?

    我正在使用 jQuery 的 ajax 代码来加载新页面 但希望他只获取 div 的 html 我的代码 HTML div div Script ajax url href type GET success function data co
  • 如何在 Android 中动态切换 XML 样式?

    长话短说 我有一个应用程序 我在其中直接将样式属性应用于活动和片段的 XML 文件 现在我将其重构为styles xml文件 我几乎不敢直接修改主题本身 因为我之前已经尝试过类似的东西 继承变得混乱 所以 我的作品里有好几种这样的风格sty
  • R 子集的回归

    我想对不同国家 即我的数据的子集 运行相同的回归 我确实弄清楚了如何在 R 中执行此操作 但是在 Stata 中更轻松地完成相同的操作之后 我想知道 R 中是否有更好的方法 在 Stata 中你会做这样的事情 foreach country
  • PDF 中的透明图像

    This PDF由多个源代码片段组成 其中五个是包含 Alpha 通道的 PNG 一种是没有 Alpha 通道的 PNG 最后一张是带有透明效果的 Photoshop PDF 这些部件是使用 ABCpdf 9 1 组装的 在 Acrobat
  • 在 CLX TEdit 的 KeyPress 事件中拦截 TAB 键

    我有一个 TEdit VisualCLX 组件 我想覆盖 onKeyPress 事件中 TAB 键的行为 但是如果我尝试拦截 KeyPress 事件中的 TAB 键 它将不起作用 因为当在 TEdit 上按下 Tab 键 如何拦截 TEdi
  • 无法在 centos VPS 上通过 google smtp 发送电子邮件

    我正在尝试通过 google SMTP 发送电子邮件 该代码在我本地 Windows PC 的 tomcat 中运行良好 但我在我的 centos VPS 上遇到了这个错误 org apache commons mail EmailExce
  • 当我删除指针时出现分段错误(核心转储)

    我正在尝试从链接列表中删除重复项 并遇到了一个问题 这可能是显而易见且简单的 但我没有使用过C 多年来 我无法通过阅读类似的问题来找出我做错了什么 下面是我的代码的一部分 我删除了不相关的部分 例如构造函数 其他方法等 template
  • asp.net webapi 2 post参数始终为空

    过去一个小时我一直在试图弄清楚这是我们的 但我不明白它出了什么问题 这篇文章来自我正在编写的 Xamarin 应用程序 使用 RestSharp 便携式客户端 POST http 192 168 30 103 8080 api Order
  • 类型错误:不可散列的类型:'dict',当 dict 用作​​另一个 dict 的键时 [重复]

    这个问题在这里已经有答案了 我有这段代码 for element in json referenceElement keys 当我运行该代码时 我收到此错误 类型错误 不可散列的类型 dict 该错误的原因是什么 我可以采取什么措施来修复它
  • CountIf - 如何转义特殊字符(尖括号)

    我正在尝试使用 VBA 计算 Excel 电子表格中特定单元格值出现的次数 单元格值是一个 XML 标记 函数将尖括号解释为小于 大于 如何逃脱这些字符 微软说 您可以使用通配符 问号 和星号 作为条件 问号匹配任何单个字符 星号匹配任何字
  • ui-router 默认子状态不起作用

    我正在测试UI Router嵌套状态 但我无法在父 子场景中设置默认状态 请帮助 图书馆 角度 1 3 15 用户界面路由器 0 2 15 导航路径 home settings parent state page settings defa
  • 如何在约束布局上实现重叠/负边距?

    是否可以在约束布局上实现负边距以实现重叠 我试图让图像以布局为中心 并有一个文本视图 使其与 x dp 重叠 我尝试设置负保证金值 但没有成功 如果有办法实现这一点那就太好了 Update 约束布局现在版本 2 1 0 alpha2 支持负
  • 从一个函数返回不同维度的数组;在 F# 中可以吗?

    我正在尝试将一些 Python 转换为 F 特别是numpy random randn 该函数采用可变数量的 int 参数 并根据参数的数量返回不同维度的数组 我相信这是不可能的 因为不能有一个返回不同类型的函数 int int int 等